Bonnes pratiques de calcul
Écrire son script
Un script de soumission vous permet de formaliser le paramétrage de vos jobs. Veuillez préférer cette méthode à la déclaration des paramètres en ligne de commande.
En cas de personnalisation des fichiers de sortie et d’erreur (
stdout
,stderr
), utilisez un répertoire partagé et bien utiliser%j
dans le chemin ou le nom (voir les Principales options de sbatch) ;gérez les erreurs du script avec la commande bash
set
comme expliqué dans les exemples de scripts de soumission ;privilégiez plusieurs petits jobs qui rentreront plus vite qu’un seul job plus gros. N’utilisez
srun
et les steps Slurm que pour un besoin réel (calcul parallèle ou calcul à taches multiples indépendantes) ;si un fichier ou en ensemble de fichiers est accédé plusieurs fois, il est recommandé de tout copier localement sur
TMPDIR
;l’espace local
/scratch
(accessible viaTMPDIR
) est partagé : en cas de remplissage cela peut impacter les workers et les jobs d’autres utilisateurs (pour plus de détails voir la page Environnement de calcul). Prevoyez le nettoyage deTMPDIR
à la fin de votre job.
Tester et paramétrer son job
Les actions suggérées ci-dessous vous permettront d’évaluer la quantité des ressources nécessaire à la bonne éxecution de votre production. Si, même après les étapes d’évaluation suivantes, vous vous rendez compte d’un erreur de paramétrage sur un job en exécution, veuillez préférer la suspension et l’altération du job à son annulation.
Utilisez les partitions
flash
et/ou*interactive
pour tester le job. Cette étape est particulièrement importante avant la soumission d’un grand nombre de jobs ;si nécessaire, profilez votre job pour en étudier le comportement exact ;
vérifiez dans les étapes ci-dessus que le job utilise la quasi-totalité des ressources demandées et ajustez le paramétrage du job (le temps, le nombre de CPUs par tâche, et la mémoire) pour rapprocher la demande de ressources à la consommation prévisionnelle ;
déclarez les ressources de stockage et logicielles nécessaires à votre job ;
une fois les paramètres de soumission validés, intégrez-les au header du script ;
en cas de lancement lancement de jobs similaires (qui diffèrent d’un ou plusieurs paramètres propres au traitement), utilisez des jobs tableau pour limiter la charge sur la plateforme de calcul.
À la fin des jobs
Rendez vous sur le Portail Utilisateur pour verifier l’efficacité CPU et mémoire ;
en cas d’erreur, consulter les fichiers de sortie.
Soumettre un ticket
Les informations à fournir dans le ticket (selon le cas, toutes les informations ne sont pas toujours nécessaires). Privilégiez des pièces jointes pour partager plusieurs lignes de code :
L’identifiant d’un job concerné par le problème. Si c’est possible, fournir aussi l’identifiant d’un job ayant fonctionné correctement ;
les paramètres de soumission (ligne de commande et header du script) ;
les contenus des fichiers de sortie et d’erreur ;
le script en entier ;
si job reste en attente, veuillez copier le message du champ
REASON
de l’output de la commande squeue.