Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
ressources:slurm4cbp [2022/04/05 12:07]
equemene [Paramétrage de l'accès aux grappes de calcul]
ressources:slurm4cbp [2023/12/01 11:00] (Version actuelle)
equemene [Ressources du Centre Blaise Pascal]
Ligne 1: Ligne 1:
-====== Utilisation de Slurm au Centre Blaise Pascal ======+====== Utilisation de Cluster@CBP avec Slurm au Centre Blaise Pascal ======
  
 ===== Ce qu'il faut retenir ! ===== ===== Ce qu'il faut retenir ! =====
Ligne 6: Ligne 6:
   * pour connaître les noeuds disponibles ou les queues : ''​sinfo''​   * pour connaître les noeuds disponibles ou les queues : ''​sinfo''​
   * pour connaître l'​état des tâches : ''​squeue''​   * pour connaître l'​état des tâches : ''​squeue''​
-  * pour effectuer une réservation en mode interactif : ''​srun ​-N <​Noeuds>​ -n <​Coeurs>​ -i --pty bash''​+  * pour effectuer une réservation en mode interactif : ''​srun ​%%--%%pty bash''​
   * pour lancer une tâche définie par le script SLURM ''​MyJob.slurm''​ : ''​sbatch MyJob.slurm''​   * pour lancer une tâche définie par le script SLURM ''​MyJob.slurm''​ : ''​sbatch MyJob.slurm''​
  
 +Comme "​pense-bête"​ est disponible cette intéressante //​[[https://​slurm.schedmd.com/​pdfs/​summary.pdf|Reference Card]]//.
 ===== Contexte : exécution de tâches "mode intéractif"​ ou "mode non connecté"​ ===== ===== Contexte : exécution de tâches "mode intéractif"​ ou "mode non connecté"​ =====
  
-Généralement,​ l'​exécution d'un programme au CBP sur une machine se fait via un terminal en ligne de commande. Les tâches, listées dans un script s'​exécutent sur la machine hôte les unes après les autres. Se déconnecter de son terminal met fin à l'​exécution de son programme. Avec **tmux** ou **screen**, il est possible de maintenir ses exécutions en se "​détachant"​ de son terminal pour y revenir ensuite.+Généralement,​ l'​exécution d'un programme au CBP sur une machine se fait via un terminal en ligne de commande. Les tâches, listées dans un scripts'​exécutent sur la machine hôte les unes après les autres. Se déconnecter de son terminal met fin à l'​exécution de son programme. Avec **tmux** ou **screen**, il est possible de maintenir ses exécutions en se "​détachant"​ de son terminal pour y revenir ensuite.
  
 Il est très profitable d'​avoir un "​soumissionneur"​ pour distribuer ses tâches à un ensemble de ressources disponibles,​ sans avoir à se connecter de manière individuelle sur chaque machine. L'​exploitation de programmes parallèlisés s'​exécutant de manière concurrente sur plusieurs coeurs d'une même machine ou sur plusieurs machines ​ Il est très profitable d'​avoir un "​soumissionneur"​ pour distribuer ses tâches à un ensemble de ressources disponibles,​ sans avoir à se connecter de manière individuelle sur chaque machine. L'​exploitation de programmes parallèlisés s'​exécutant de manière concurrente sur plusieurs coeurs d'une même machine ou sur plusieurs machines ​
Ligne 29: Ligne 30:
 Le Centre Blaise Pascal n'a pas vocation à voir ses infrastructures utilisées : Le Centre Blaise Pascal n'a pas vocation à voir ses infrastructures utilisées :
   * pour de longs calculs de production (de l'​ordre de la semaine)   * pour de longs calculs de production (de l'​ordre de la semaine)
-  * pour des calculs sur de très grands nombres de coeurs (de l'​ordre du millier)+  * pour des calculs sur de très grands nombres de coeurs (supérieurs à 1000)
  
 Pour ces deux exigences, le [[http://​www.ens-lyon.fr/​PSMN/​doku.php?​id=documentation:​clusters:​accueil|PSMN Pour ces deux exigences, le [[http://​www.ens-lyon.fr/​PSMN/​doku.php?​id=documentation:​clusters:​accueil|PSMN
 dispose d'une infrastructure de production]]. dispose d'une infrastructure de production]].
  
-Les équipements accessibles via le soumissionneur SLURM sont 128 noeuds répartis de 4 types différents pour un total de 2080 coeurs et plus de TB de RAM agrégées.+Les équipements accessibles via le soumissionneur SLURM sont 96 noeuds répartis de 4 types différents pour un total de 1888 coeurs et plus de TB de RAM agrégées.
  
 | **Cluster** | **Marque** | **Modèle** | **Noeuds** | **Coeurs /Noeud** |**RAM /​Noeud**|**Réseau GE**|**Réseau IB**|**Total Coeurs**|**Total RAM**| | **Cluster** | **Marque** | **Modèle** | **Noeuds** | **Coeurs /Noeud** |**RAM /​Noeud**|**Réseau GE**|**Réseau IB**|**Total Coeurs**|**Total RAM**|
-| **r422** | Supermicro ​R422 | 64 | 8 | 48 GB | GE | IB | 512 3072 GB | +| **c82** | Dell C8220 | 64 | 8 | 128 GB | GE | IB | 1024 8192 GB | 
-| **r410** | Dell  | R410 48 | 24 GB | GE | IB | 384 | 1152 GB | +| **c61** | Dell  | C6100 16 12 | 24 GB | GE | IB | 192 | 384 GB | 
-| **s92** | Intel  | S9200 | 12 | 96 | 384 GB | GE | IB | 1152 | 4608 GB | +| **c82gluster** | Dell  | C8220 | 4 | 16 | 256 GB | GE | IB | 32 | 1024 GB |
-| **c82gluster** | Dell  | C8220 | 4 | 16 | 64 GB | GE | IB | 32 | 256 GB |+
  
 Ces clusters partagent exactement la même image de système, [[developpement:​productions:​sidus|Sidus]] (pour Single Instance Distributing Universal System), un système complet Debian intégrant tous les paquets scientifiques ainsi que de nombreux paquets de développement. Ces clusters partagent exactement la même image de système, [[developpement:​productions:​sidus|Sidus]] (pour Single Instance Distributing Universal System), un système complet Debian intégrant tous les paquets scientifiques ainsi que de nombreux paquets de développement.
Ligne 55: Ligne 55:
 ===== Dossiers personnels ===== ===== Dossiers personnels =====
  
-Sur la passerelle ''​lethe'',​ chaque utilisateur dispose de 5 espaces de travail :+Sur la passerelle ''​cocyte'',​ chaque utilisateur dispose de 5 espaces de travail :
   * un **personnel cluster** dans ''/​home/<​login>''​   * un **personnel cluster** dans ''/​home/<​login>''​
   * un **personnel CBP** dans ''/​cbp/<​login>''​   * un **personnel CBP** dans ''/​cbp/<​login>''​
Ligne 62: Ligne 62:
   * un **//​temporaire//​ très rapide** dans ''/​distonet''​   * un **//​temporaire//​ très rapide** dans ''/​distonet''​
  
-Le **personnel CBP** correspond à l'​espace utilisateur de ressources informatiques du CBP lorsqu'​on se connecte :+L'​espace ​**personnel CBP** correspond à l'​espace utilisateur de ressources informatiques du CBP lorsqu'​on se connecte :
   * Toute machine de [[http://​www.cbp.ens-lyon.fr/​python/​forms/​CloudCBP|Cloud@CBP]] notamment :   * Toute machine de [[http://​www.cbp.ens-lyon.fr/​python/​forms/​CloudCBP|Cloud@CBP]] notamment :
     * aux 22 stations de travail de la salle de formation du CBP     * aux 22 stations de travail de la salle de formation du CBP
Ligne 103: Ligne 103:
   * connaître les ressources disponibles : commande ''​sinfo''​ et ses options   * connaître les ressources disponibles : commande ''​sinfo''​ et ses options
   * connaître l'​état des calculs en cours : commande ''​squeue''​ et ses options   * connaître l'​état des calculs en cours : commande ''​squeue''​ et ses options
-  * lancer une réservation de machines en mode interactif : commande ''​salloc''​ et ses options+  * lancer une réservation de machines en mode interactif : commande ''​srun''​ et ses options
   * lancer un calcul autonome (sous forme de batch) : commande ''​sbatch''​ et ses options   * lancer un calcul autonome (sous forme de batch) : commande ''​sbatch''​ et ses options
 +
 +Ce [[https://​slurm.schedmd.com/​pdfs/​summary.pdf|résumé sur Slurm]] reprend les commandes importantes.
  
 ==== Connaître les ressources disponibles ==== ==== Connaître les ressources disponibles ====
Ligne 127: Ligne 129:
   * les noeuds **r422node1** ou **r422node64** sont utilisés pour des calculs   * les noeuds **r422node1** ou **r422node64** sont utilisés pour des calculs
  
-=== ''​sinfo -Nel''​ pour toute l'​infrastructure === 
  
-La commande ​ fournit ​en sortie :<​code>​ +==== Connaître l'​état des calculs ​en cours squeue ==== 
-PARTITION AVAIL  TIMELIMIT ​ NODES  STATE NODELIST +
-galaxy ​      ​up ​  ​infinite ​     8   idle r410node[65-72] +
-r410*        up   ​infinite ​    ​64 ​  idle r410node[1-64] +
-</​code>​+
  
-==== Connaître l'​état des calculs en cours qstat ==== 
  
 === Pour connaître l'​état général === === Pour connaître l'​état général ===
Ligne 141: Ligne 138:
 <​code>​squeue</​code>​ <​code>​squeue</​code>​
  
-=== Pour avoir l'​information sur une tâche particulière === 
- 
-Pour connaître toutes les informations sur la tâche 9, par exemple, ''​qstat -j 9''<​code>​ 
- 
-</​code>​ 
- 
-On voit ainsi que la tâche a commencé le 5 février 2013 à 15h51 pour se terminer à 15h58 et qu'​elle s'est exécutée sur 4 noeuds x41z. 
  
 ==== Lancer un calcul autonome (mode batch) ==== ==== Lancer un calcul autonome (mode batch) ====
Ligne 178: Ligne 168:
 <​code>​sbatch HelloWorld.slurm</​code>​ <​code>​sbatch HelloWorld.slurm</​code>​
  
 +Il est possible de préciser dans le script de lancement de nombreuses informations notamment :
 +  * le nom des sorties du terminal ''​STDOUT''​ et ''​STDERR''​
 +  * l'​adresse de courriel d'​expédition de message
 +  * les ressources nécessaires à l'​exécution
 +  * l'​usage exclusif d'une ressource (par exemple un noeud)
  
 +L'​ordonnanceur **slurm** dispose de centaines d'​options pour paramétrer sa requête.
  
 Le script de batch ''​MyJob.slurm''​ est le suivant : Le script de batch ''​MyJob.slurm''​ est le suivant :
Ligne 190: Ligne 186:
 # Definition du fichier de sortie des erreurs (stderr) # Definition du fichier de sortie des erreurs (stderr)
 # #
 +# Avec exclusive, le noeud est reserve dans sa totalite
 #SBATCH --exclusive #SBATCH --exclusive
 +
 #SBATCH --mail-type=END #SBATCH --mail-type=END
-#SBATCH --mail-user=<>+#SBATCH --mail-user=mon.nom@mon-site.mon-pays
  
 srun date srun date
Ligne 199: Ligne 197:
  
 </​code>​ </​code>​
 +
 +<note important>​Suite de la documentation en construction</​note>​
 +
 +=== Réservation de ressources ===
 +
 +Pour l'​instant,​ la réservation de ressources n'est possible que sur les noeuds, les coeurs et la mémoire sur les clusters du CBP.
 +
 +Voici un exemple de soumission slurm pour réserver un total de 64 coeurs sur un unique noeud
  
 === Lancer un batch parallèle sur plusieurs coeurs === === Lancer un batch parallèle sur plusieurs coeurs ===
Ligne 210: Ligne 216:
 </​code>​ </​code>​
  
-Le programme se lance en utilisant la commande de soumission ''​qsub ./MyJob.qsub''​.+Le programme se lance en utilisant la commande de soumission ''​sbatch ​./MyJob.slurm''​.
  
-La commande d'​examen des tâches en cours ''​qstat''​ permet ensuite de savoir que le job a bien été pris en compte.+La commande d'​examen des tâches en cours ''​squeue''​ permet ensuite de savoir que le job a bien été pris en compte.
  
  
Ligne 226: Ligne 232:
 </​code>​ </​code>​
  
-Le programme se lance en utilisant la commande de soumission ''​qsub ./MyJob.qsub''​.+Le programme se lance en utilisant la commande de soumission ''​sbatch ​./MyJob.slurm''​.
  
-La commande d'​examen des tâches en cours ''​qstat''​ permet ensuite de savoir que le job a bien été pris en compte.+La commande d'​examen des tâches en cours ''​squeue''​ permet ensuite de savoir que le job a bien été pris en compte.
  
  
ressources/slurm4cbp.1649153267.txt.gz · Dernière modification: 2022/04/05 12:07 par equemene