Environnement de calcul

Au moment où l’ordonnanceur alloue les ressources, le répertoire /scratch/slurm.<jobid>.<taskid>/tmp est créé automatiquement sur le serveur de calcul alloué, pour y déposer les fichiers temporaires générés pendant l’exécution.

Parallèlement, l’ordonnanceur fixe la valeur /tmp à la variable d’environnement TMPDIR et fait un mapping entre /tmp et le répertoire créé dans /scratch. Il suffira donc d’écrire les fichiers temporaires éventuels dans /tmp, qui pointe en réalité sur le répertoire temporaire (accessible uniquement par l’utilisateur) dans /scratch. À la fin du job, ce répertoire est supprimé automatiquement par l’ordonnanceur.

Important

Pour la lecture d’un gros volume de données, il est recommandé d’utiliser TMPDIR pour ses performances étant donné que la partition /scratch a un volume important et est sur un disque local.

Par contre, si vous désirez, par exemple, passer les données d’un job à un autre, il ne faudra pas utiliser le /scratch d’un worker comme répertoire permanent, mais plutôt vos répertoires THRONG ou GROUP.

Ressources de stockage et logicielles

Il est nécessaire de déclarer à la soumission les systèmes de stockage accédés par vos jobs, ainsi que les éventuelles licences logicielles utilisées. Cette déclaration se fait en utilisant l’option -L de la commande sbatch. Pour un exemple de syntaxe, veuillez vous referer à l’exemple d’un job standard.

Afin de connaître les limites des ressources à déclarer, utilisez la commande scontrol :

% scontrol show lic
  • Pour obtenir la liste exhaustive des ressources nécessitant une déclaration lors de la soumission :

% scontrol show lic | grep default
  • Pour connaître les limitations des ressources d’un <groupe> :

% scontrol show lic | grep -A1 <groupe>

Attention

Les suffixes _default ou _<groupe> seront à omettre dans la declaration du sbatch.

Veuillez vous référer à la page MATLAB pour la déclaration de cette ressource logicielle.

Limites des groupes

Chaque groupe de calcul est limité quant au nombre de slots occupés simultanément par des jobs en cours d’exécution ; la limite dépendra de la demande de ressources annuelle du groupe. Pour connaître cette limite pour un groupe (account) donné :

% sacctmgr show assoc where account="<groupe>" user= format="Account,Grpcpus"
   Account  GrpCPUs
---------- --------
  <groupe>     2000

Lorsque cette limite est atteinte, les soumissions suivantes seront mises en attente jusqu’à ce que la completion des jobs en cours libère le nombre demandé de slots. Cepandant, si vous obtenez le message suivant à la soumission :

sbatch: error: AssocMaxSubmitJobLimit
sbatch: error: Batch job submission failed: Job violates accounting/QOS policy (job submit limit, user's size and/or time limits)

ou, lors du suivi d’un job en attente, squeue retourne :

% squeue
             JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
            936551       htc littlene     user PD       0:00      1 (AssocMaxJobsLimit)

alors vous avez probablement été bloqué ! Vérifiez votre boîte e-mail ou contactez le support utilisateurs.

Limites des paramètres

La limite supérieure du paramètre de temps -t dépend de la qualité de service associé à la partition utilisée.

Les limites supérieures de la mémoire --mem=, et du nombre de tâches -n ou de CPUs par tâche -c dépendent de la partition et du nœud utilisés.

Important

Pour vous aider dans l’évaluation des parametres nécessaires pour vos jobs, veuillez vous référer au paragraphe Profilage des jobs.

Pour une vue d’ensemble des ressources disponibles et de leurs limites, veuillez faire référence à la page Informations sur les ressources de la plateforme de calcul.

Voici les principales lignes directives pour les limitations de ces ressources par partition :

  • htc limite le job à un seul nœud, cela implique que les limites CPU seront les limites matérielles du nœud sollicité ; la mémoire sera limité à 150 GB.

    • htc_daemon limite les jobs à 1 CPU et 3 GB de mémoire.

    • htc_highmem les limites CPU et mémoire seront les limites matérielles du nœud sollicité.

  • flash a les mêmes limites de CPU et mémoire que htc.

  • hpc Dans cette partition le job peut « déborder » sur plusieurs nœuds. Les limites de mémoire et de CPU seront donc la totalité des CPU et de la mémoire disponible sur la plateforme HPC.

  • gpu limite le job à un seul nœud. La limite de la mémoire sera calculée comme pour htc_highmem ; en revanche, la limite du nombre de CPU est strictement liée au nombre de GPU demandés et dépend du plus faible rapport CPU/GPU de la plateforme GPU (lié au type et à la configuration du matériel correspondant).

    • Si, par exemple, un nœud de la plateforme a un rapport de 5 CPU pour chaque GPU, et un autre a un rapport de 6, la limite maximale sera de 5 CPU pour chaque GPU demandé.