Utilisation des clusters de calcul

Avertissement

L’utilisation de SLURM est obligatoire sur les clusters de la Plateforme DISC

Introduction

Vous souhaitez lancer un calcul (séquentiel ou parallèle) nécessitant une certaine quantité de ressources (coeurs, noeuds …) et de mémoire. Il faut vous connecter en SSH sur un des clusters de calcul de DISC, et utiliser SLURM

ssh user@10.36.1.135

C’est Quoi SLURM ? <<<<<<< HEAD —————- ======= —————— >>>>>>> Commit new docx SLURM est un « JOB SCHEDULER » ou un gestionnaire de ressources

il sert à gérer les ressources d’une machine multi-utilisateurs multi-taches en permettant:

  • de choisir les ressources physiques à utiliser

  • de planifier le lancement des calculs (heure de départ, durée limite …)

  • de réserver les ressources nécessaire au bon déroulement d’un calcul

  • d’ordonnancer les « JOB » lancés par les utilisateurs

SLURM est un outil indispensable

Lancer un travail sur le cluster

Que faire ?

Sur le frontal du cluster, lancer votre calcul dans un environnement SLURM en précisant vos besoins en termes de ressources (coeurs, noeuds …), d’heure de démarrage et de durée.

Cela vous garantie notamment que votre calcul sera seul sur les ressources allouées et donne plus de sens au temps de calcul observés.

Comment le faire ?

avec SLURM

Deux modes principaux de fonctionnement sont possibles :

  • interactif, l’appel à srun réserve les ressources demandées et ouvre une session sur un noeud du cluster. L’utilisateur a ensuite la main pour lancer son application ou tout autre commande. Dès lors que l’utilisateur quitte sa « session » il libère automatiquement les ressources.

Voir les nombreux exemples du paragraphe « Lancement d’un job en interactif ».

  • batch, les ressources requises, la durée du calcul, le(s) job(s) à lancer sont décrits dans un script, lancé en tâche de fond. Les ressources seront libérés à la fin du « walltime » fixé ou par la suppression du job (scancel).

Le mode batch utilize la même notation que le mode interactif à ceci près qu’il faut renseigner les ressources dans le script.

Voici les commandes de bases necessaire pour utiliser SLURM.

A T T E N T I O N: il faut indiquer le projet pour lequel vous travaillez (option -A [nom du projet] )

Lancement d’un job en interactif : srun –pty bash -i

par defaut un seul coeur, n’importe ou

srun --pty bash -i

<<<<<<< HEAD Demander un noeud en entier (l’ensemble des coeurs et de la mémoire)

srun --exclusive --pty bash -i

Demander 4 coeurs

srun -n4 --pty bash -i

Demander 4 coeurs sur le même noeud

srun -N1 -n4 --pty bash -i

>>>>>>> Commit new docx

Demander quatre coeurs sur un même processeur (sur un seul noeud)


<<<<<<< HEAD

srun -n4 –cores-per-socket=4 –pty bash -i

Demander quatre coeurs, répartis sur deux processeurs du même noeud

srun -N1 -n4 --sockets-per-node=2 --cores-per-socket=2 --pty bash -i

<<<<<<< HEAD Demander la machine node005 en entier

srun --exclusive -w node005 --pty bash -i

Demander les machine node005 et node010 en entier

srun --exclusive -w node005,node010 --pty bash -i
srun  -w node005 --pty bash -i

Demander lun coeur sur chaque machine node005 et node010 .. code-block:: none

srun -w node005,node010 –pty bash -i

>>>>>>> Commit new docx

ou


<<<<<<< HEAD

srun –exclusive -w node0[05,10] –pty bash -i

demander les machine node005 a node010 en entier


<<<<<<< HEAD

srun –exclusive -w node0[05-10] –pty bash -i

Lancement d’un travail en batch : sbatch

Dans ce cas, les ressources requises sont décrites dans un script. à l’aide de la directive #SBATCH

Lancer un travail

sbatch ./slurmscript.sh

Etre raisonnable: le walltime

Par défaut, le walltime dun job est à 2 heures dans le format suivant: 02:00:00

Il est également possible de fixer le walltime en passant en paramètre la valeur souhaitée:

--time=05:00:00

Pour le mode batch, en modifiant la ligne du script suivante

#SBATCH --time=05:00:00

Gérer ses travaux lancés sur le cluster

Obtenir la liste des jobs tournant sur la machine

squeue:

JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
19125     short   test10  chetrit  R       0:02      2 node[005,010]

Supprimer un travail en cours

scancel Jobid

scancel 19125

Séquence de calcul « standard »

pour soumette un travail en mode BATCH sur le cluster il faut au minimum:

  • écrire le script de soumission monscript.sbatch

  • soumettre le batch: sbatch monscript.sbatch

  • vérifier le fichier d’erreur .err

  • Suivre son déroulement (squeue, ….)

  • vérifier les résultats

  • nettoyer impérativement l’espace de travail (suppression fichier de travail et intermediares, l’espace disque n’est pas infini, pensez au autres ..)

<<<<<<< HEAD Pour tout renseignement vous pouvez contacter l’équipe :email:`DISC (meso.crcm@inserm.fr)`. ======= Pour tout renseignement vous pouvez contacter l’équipe DISC . >>>>>>> Commit new docx