Les outputs de mes scripts python, bash ne sont pas présents de façon synchrone dans le fichier slurm-<jobid>.out et slurm-<jobid>.err
Plusieurs solutions sont possibles en fonction du langage utilisé :
Python 2
Pour forcer les écritures, en python 2, vous avez la possibilité d'appeler votre script avec l'option -u :
python2 -u monscript.py
Vous pouvez aussi le modifier en mettant après chaque appel de la fonction print un appel à la fonction flush:
#!/usr/bin/python2
import sys
#[...]
print("coucou")
sys.stdout.flush()
#[...]
Python 3
Pour forcer les écritures, en python 3, vous avez la possibilité d'appeler votre script avec l'option -u :
python3 -u monscript.py
Vous pouvez aussi le modifier en utilisant l'option flush de la fonction print :
#!/usr/bin/python3
#[...]
print("coucou", flush=True)
#[...]
bash
Pour forcer les écritures, en bash, vous avez la possibilité d'appeler votre script avec la commande stdbuf :
stdbuf -oL monscript.sh
Pour plus d'information sur la commande stdbuf