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