FAQ

Q : Comment exécuter un traitement sur le Cluster OSIRIM ?

R : Vous devez vous connecter en SSH sur la machine "osirim-slurm.irit.fr" (port 22) et transmettre un fichier batch avec la commande "sbatch". Consultez la documentation SLURM pour des informations détaillées.

Q : Mon Job se déroule correctement et mes données sont bien traitées. Pourquoi apparaît-il comme "Failed" dans l'email de fin et la commande sacct ?

R : Une des raisons possibles est la suivante :

Le succès ou l'échec de toute commande shell (commande standard, script, fonction, programme...) est déterminé par son code de retour (exit code) ; zero (0) indique succès et ">0" indique un échec. Dans un script shell (comme le Batch Slurm), l'exit-code du script est déterminé par l'exit-code de sa dernière instruction ou commande exécutée.

Par exemple, si la fin d'un script est la suivante :

# Tests whether /some/file exists or not

if [[ -f '/some/file' ]]; then
    echo "=> Do something"
fi
  • Si le fichier existe, la dernière commande est "echo", qui retournera 0/Succès.

  • S'il n'existe pas, la dernière commande exécutée est le test "-f" du fichier qui retourne 1/Echec. Aucune autre commande n'étant évaluée, le script entier retournera 1/Echec.

Solution : Ajouter "exit 0" explicitement dans les cas ou le script "réussit" même si le test ou la commande précédent(e) échoue.

Q : J'ai besoin de lancer un grand nombre de jobs similaires, comment faire ?

R : Le plus simple est de créer un Job Array.

Q : J'ai demandé Tasks de CPUs dans mon batch mais mon Job n'utilise jamais plus de CPUs en même temps !

R : Avez-vous créé des Job Steps ? Si plus d'une Task est demandée mais qu'aucun Step n'est explicitement déclaré, l'allocation totale NE DÉPASSERA PAS 1 Task ( CPUs) !

Q : J'essaie de lancer des Job Steps en parallèle mais ils s'exécutent l'un après l'autre !

R : Pour exécuter des Job Steps en parallèle, il faut exécuter la commande srun en "arrière plan" en ajoutant '&' en fin de ligne.

Q : J'essaie de lancer des Job Steps en parallèle mais ils ne sont pas exécutés, le Batch s'arrête immédiatement !

R : Une fois les Job Steps déclarés, il faut impérativement utiliser la commande "wait" pour que le processus parent (le Job) attende la fin de l'exécution des processus enfant (Steps).

Q : Dans mon fichier "output", Slurm m'affiche le Warning: "srun: Warning: can't run 2 processes on 4 nodes, setting nnodes to 2."

R : Lors de l'exécution d'un Job Step avec "srun", le paramètre "-n" (ntasks) doit être supérieur ou égal à "-N" (nodes), sinon Slurm affiche ce warning et réduit -N à -n.