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
Dernière révision Les deux révisions suivantes
ressources:gridengine4cbp [2015/08/31 15:20]
equemene
ressources:gridengine4cbp [2020/12/17 19:03]
equemene [Introduction]
Ligne 1: Ligne 1:
 ====== Utilisation du Cluster (et GridEngine) au Centre Blaise Pascal ====== ====== Utilisation du Cluster (et GridEngine) au Centre Blaise Pascal ======
  
 +<note important>​Avant de lancer votre calcul, ayez un aperçu de l'​[[http://​styx.cbp.ens-lyon.fr/​ganglia/?​r=hour&​c=Nodes|état des noeuds]] (site accessible seulement sur site)</​note>​
 ===== Ce qu'il faut retenir ! ===== ===== Ce qu'il faut retenir ! =====
  
-  * pour se connecter sur la passerelle de cluster : <​code>​ssh <​login>​@slethe.cbp.ens-lyon.fr</​code>​+  * pour se connecter sur la passerelle de cluster : <​code>​ssh <​login>​@lethe.cbp.ens-lyon.fr</​code>​
   * pour connaître les noeuds disponibles : ''​qhost''​   * pour connaître les noeuds disponibles : ''​qhost''​
   * pour connaître l'​état des tâches : ''​qstat''​   * pour connaître l'​état des tâches : ''​qstat''​
 +  * pour connaître la listes des queues : ''​qconf -sql''​
   * pour lancer une tâche définie par le script GridEngine ''​MyJob.qsub''​ : ''​qsub MyJob.qsub''​   * pour lancer une tâche définie par le script GridEngine ''​MyJob.qsub''​ : ''​qsub MyJob.qsub''​
  
Ligne 25: Ligne 27:
 dispose d'une infrastructure de production]]. dispose d'une infrastructure de production]].
  
-Les équipements mis à disposition ​76 noeuds dans groupes différents pour un total de 384 coeurs et 1248 Go de RAM.+Les équipements mis à disposition ​derrière le soumissionneur GridEngine se composent de 166 noeuds dans groupes différents pour un total de 1416 coeurs et 6016 Go de RAM. 
 + 
 +Sur les 72 noeuds R410 arrivés entre le printemps 2014 et l'​automne 2015, tous sont disponibles via le gestionnaire GridEngine. Les 16 C6100 agrègent leur stockage individuel pour servir l'​espace partagé ''/​distonet''​. Les SL230 ne disposent ​
  
-Les noeuds v40z et v20z ont été arrêtés puis déposés suite à l'​arrivée de Equip@Meso : ils ont été remplacés par quelques x41z supplémentaires durant l'​été 2013. 
  
 | **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**|
-| **r410** | Dell  | R410 | 48 | 4 | 24 Go | GE | IB | 384 | 1.1 To +| **r422** | Supermicro ​ | R422 | 64 | 8 | 48 Go | GE | IB QDR | 512 | 3072 Go | 
-| **x41z** | Sunfire ​ | x41z | 24 | 8 | 16 Go ou 32 Go | GE | IB | 192 576 Go |+| **r410qdr** | Dell  | R410 | 64 | 8 | 24 Go | GE | IB QDR | 512 | 1536 Go | 
 +| **r410ddr** | Dell  | R410 | 4 | 8 | 24 Go | GE | IB DDR | 32 | 96 Go | 
 +| **c61** | Dell  | C6100 | 16 | 12 | 24 Go | GE | IB QDR | 192 | 384 Go | 
 +| **c82** | Dell  | C8220 | 4 | 16 | 64 Go | GE | IB QDR | 64 | 256 Go | 
 +| **sl230** | HP  | SL230 | 8 | 8 | 64 Go | GE | IB FDR | 64 | 512 Go 
 +| **x41z** | Sun  | x41z | | 8 | 32 Go | GE | IB DDR 64 128 Go | 
 +| **x4500** | Sun  | x4500 | 2 | 4 | 16 Go | GE | IB SDR | 16 | 32 Go |
  
 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 37: Ligne 46:
 ===== Accès aux clusters ===== ===== Accès aux clusters =====
  
-L'​accès aux clusters se fait via la passerelle ''​styx.cbp.ens-lyon.fr'',​ par le protocole SSH :<​code>​ +L'​accès aux clusters se fait via la passerelle ''​lethe.cbp.ens-lyon.fr'',​ par le protocole SSH :<​code>​ 
-ssh -X <​login>​@lethe.cbp.ens-lyon.fr</​code>​ ou via x2go sur la même adresse.+ssh -X <​login>​@lethe.cbp.ens-lyon.fr</​code>​ ou via [[http://​wiki.x2go.org/​doku.php|x2go]] ​sur la même adresse. Il est donc préalablement nécessaire d'​installer sur sa machine un client SSH ou x2go pour accéder à la passerelle.
  
-Cette passerelle n'est accessible que de l'​intérieur de l'ENS : il est nécessaire de passer par la passerelle de l'ENS ''​ssh.ens-lyon.fr''​ ou par le Virtual Private Network par OpenVPN pour y accéder.+En outre, cette passerelle n'est accessible que de l'​intérieur de l'ENS : il est nécessaire de passer par la passerelle de l'ENS ''​ssh.ens-lyon.fr''​ ou par le Virtual Private Network par OpenVPN pour y accéder.
  
-Notons que l'​outil x2go permet de paramétrer directement la passerelle ''​ssh.ens-lyon.fr''​ et d'​obtenir le bureau graphique.+Notons que l'​outil x2go permet de paramétrer directement la passerelle ''​ssh.ens-lyon.fr''​ et d'​obtenir ​directement ​le bureau graphique.
  
 ===== Dossiers personnels ===== ===== Dossiers personnels =====
  
-Sur la passerelle ''​lethe'',​ chaque utilisateur dispose de espaces utilisateurs :+Sur la passerelle ''​lethe'',​ chaque utilisateur dispose de espaces utilisateurs :
   * un local dans ''/​home/<​login>''​   * un local dans ''/​home/<​login>''​
   * un général dans ''/​cbp/<​login>''​   * un général dans ''/​cbp/<​login>''​
   * un rapide dans ''/​scratch''​   * un rapide dans ''/​scratch''​
 +  * un projet dans ''/​projects''​
  
-Le second correspond à l'​espace utilisateur de ressources informatiques du CBP lorsqu'​il se connecte : +Le second, ''/​cbp/<​login>/'' ​correspond à l'​espace utilisateur de ressources informatiques du CBP lorsqu'​il se connecte : 
-  * aux stations de travail de la salle libre service+  * aux 28 stations de travail de la salle libre service 
 +  * à la station graphique 3D de la petite salle de réunion
   * aux machines à la demande SIDUS (Single Instance Distributing Universal System)   * aux machines à la demande SIDUS (Single Instance Distributing Universal System)
   * aux serveurs d'​intégration,​ de compilation,​ de tests    * aux serveurs d'​intégration,​ de compilation,​ de tests 
Ligne 59: Ligne 70:
     * sous différentes distributions Debian : Lenny, Squeeze, Wheezy, Jessie et Sid     * sous différentes distributions Debian : Lenny, Squeeze, Wheezy, Jessie et Sid
  
 +===== Paramétrage de l'​accès aux grappes de calcul =====
 +
 +  * Création d'une clé publique par ''​ssh-keygen -t rsa''​ dans mot de passe 
 +  * Pression 2 fois sur la touche ''<​Entrée>''​ pour entrer un mot de passe vide
 +  * La commande précédente présente une sortie comparable à la suivante :<​code>​
 +Generating public/​private rsa key pair.
 +Enter file in which to save the key (/​home/<​MonLogin>/​.ssh/​id_rsa): ​
 +Enter passphrase (empty for no passphrase): ​
 +Enter same passphrase again: ​
 +Your identification has been saved in /​home/<​MonLogin>/​.ssh/​id_rsa.
 +Your public key has been saved in /​home/<​MonLogin>/​.ssh/​id_rsa.pub.
 +The key fingerprint is:
 +9b:​96:​69:​95:​29:​0e:​0e:​ff:​a8:​77:​ce:​ca:​c5:​3b:​92:​55 <​MonLogin>​@lethe
 +The key's randomart image is:
 ++---[RSA 2048]----+
 +|                 |
 +| . .             |
 +|. . .            |
 +|.    .E    o     |
 +|. . o.. S +      |
 +| . =.o o B       |
 +|   o* . O        |
 +|  o+.. o         |
 +|  ....           |
 ++-----------------+
 +</​code>​
 +  * Copie de la clé publique comme clé d'​autorisation de connexion sans mot de passe :<​code>​ cd $HOME/.ssh
 +cp id_rsa.pub authorized_keys</​code>​
 +  * Test de connexion locale : <​code>​ssh lethe</​code>​
 ===== Accès aux ressources ===== ===== Accès aux ressources =====
  
Ligne 64: Ligne 104:
   * connaître les ressources disponibles : commande ''​qhost''​ et ses options   * connaître les ressources disponibles : commande ''​qhost''​ et ses options
   * connaître l'​état des calculs en cours : commande ''​qstat''​ et ses options   * connaître l'​état des calculs en cours : commande ''​qstat''​ et ses options
-  * lancer un calcul autonome (sous forme de batch) : commande ''​oarsub''​ et ses options+  * lancer un calcul autonome (sous forme de batch) : commande ''​qsub''​ et ses options
  
 ==== Connaître les ressources disponibles ==== ==== Connaître les ressources disponibles ====
Ligne 70: Ligne 110:
 La commande ''​qhost''​ permet de connaître l'​état des noeuds gérés par le gestionnaire de tâches. Chaque ressource représente un coeur. Il existe donc plus entrées par noeud. La commande ''​qhost''​ permet de connaître l'​état des noeuds gérés par le gestionnaire de tâches. Chaque ressource représente un coeur. Il existe donc plus entrées par noeud.
  
-=== qhost pour toute l'​infrastructure ===+=== ''​qhost'' ​pour toute l'​infrastructure ===
  
 La commande ​ fournit en sortie :<​code>​ La commande ​ fournit en sortie :<​code>​
 +HOSTNAME ​               ARCH         ​NCPU ​ LOAD  MEMTOT ​ MEMUSE ​ SWAPTO ​ SWAPUS
 +-------------------------------------------------------------------------------
 +global ​                 -               ​- ​    ​- ​      ​- ​      ​- ​      ​- ​      -
 +c6100gpu-1.cluster.zone lx26-amd64 ​    ​24 ​    ​- ​  ​47.3G ​      ​- ​    ​0.0 ​      -
 +... <​snip><​snip>​
 +c6100gpu-4.cluster.zone lx26-amd64 ​    ​24 ​    ​- ​  ​47.3G ​      ​- ​    ​0.0 ​      -
 +lethe.cluster.zone ​     lx26-amd64 ​     4  0.31   ​15.7G ​   3.0G   ​17.2G ​   2.9M
 +r410node1.cluster.zone ​ lx26-amd64 ​    ​16 ​    ​- ​  ​23.6G ​      ​- ​    ​0.0 ​      -
 +... <​snip><​snip>​
 +r410node9.cluster.zone ​ lx26-amd64 ​    ​16 ​ 0.01   ​23.6G ​ 303.9M ​    ​0.0 ​    0.0
 +x41z1.cluster.zone ​     lx26-amd64 ​     8     ​- ​  ​31.5G ​      ​- ​    ​0.0 ​      -
 +... <​snip><​snip>​
 +x41z9.cluster.zone ​     lx26-amd64 ​     8  2.16   ​13.7G ​ 286.5M ​    ​0.0 ​    0.0
 +</​code>​
  
 +=== ''​qhost <​noeud>''​ pour un noeud unique ===
 +
 +Par exemple, la commande ''​qhost x41z7.cluster.zone''​ pour examiner les ressources offertes par le noeud **x41z7** sort :<​code>​
 +HOSTNAME ​               ARCH         ​NCPU ​ LOAD  MEMTOT ​ MEMUSE ​ SWAPTO ​ SWAPUS
 +-------------------------------------------------------------------------------
 +global ​                 -               ​- ​    ​- ​      ​- ​      ​- ​      ​- ​      -
 +x41z7.cluster.zone ​     lx26-amd64 ​     8  0.05   ​31.5G ​ 342.7M ​    ​0.0 ​    0.0
 </​code>​ </​code>​
  
-=== qhost pour un noeud unique ===+Donc, le noeud x41z7 offre 8 CPU et une mémoire vive de 31.5 Go.
  
-Par exemple, la commande ''​qhost'' ​pour examiner les ressources offertes par le noeud x41z sort :<​code>​+=== qconf pour lister toutes les grappes === 
 + 
 +Pour lister toutes les grappes de calculon applique ​la commande ''​qconf -shgrpl''​ :<​code>​ 
 +@c6100 
 +@r410 
 +@x41z
 </​code>​ </​code>​
  
-=== qhost pour un cluster unique ​===+===  ''​qconf -shhrp @<​grappe>'' ​pour lister les noeuds d'une grappe particulière ​===
  
-La commande ''​qhost'' ​va chercher toutes ​les ressources (coeurs) disposant ​de l'entrée ​''​cluster=v20z''​.+Pour lister les noeuds de la grappe **x41z**, on applique la commande ''​qconf -shgrp @x41z'' ​:<​code>​ 
 +group_name @x41z 
 +hostlist x41z1.cluster.zone x41z10.cluster.zone x41z11.cluster.zone \ 
 +         ​x41z12.cluster.zone x41z13.cluster.zone x41z14.cluster.zone \ 
 +         ​x41z15.cluster.zone x41z16.cluster.zone x41z2.cluster.zone \ 
 +         ​x41z3.cluster.zone x41z4.cluster.zone x41z5.cluster.zone \ 
 +         ​x41z6.cluster.zone x41z7.cluster.zone x41z8.cluster.zone \ 
 +         ​x41z9.cluster.zone 
 +</​code>​ 
 + 
 +===  ''​qconf -sql''​ pour lister ​les queues ​de calcul === 
 + 
 +Pour lister toutes les queues, on applique la commande ​''​qconf -sql'' :<​code>​ 
 +c6100 
 +r410 
 +x41z 
 +</​code>​ 
 + 
 +== ''​qconf -sq <​Queue>''​ pour détailler une queue === 
 + 
 +Pour lister toutes les queues, on applique la commande ''​qconf -sq x41z''​ :<​code>​ 
 +qname                 ​x41z 
 +hostlist ​             @x41z 
 +seq_no ​               0 
 +load_thresholds ​      ​np_load_avg=1.75 
 +suspend_thresholds ​   NONE 
 +nsuspend ​             1 
 +suspend_interval ​     00:05:00 
 +priority ​             0 
 +min_cpu_interval ​     00:05:00 
 +processors ​           UNDEFINED 
 +qtype                 BATCH INTERACTIVE 
 +ckpt_list ​            ​NONE 
 +pe_list ​              ​sequential x41zhybrid 
 +rerun                 ​FALSE 
 +slots                 8 
 +tmpdir ​               /tmp 
 +shell                 /​bin/​bash 
 +prolog ​               NONE 
 +epilog ​               NONE 
 +shell_start_mode ​     posix_compliant 
 +starter_method ​       NONE 
 +suspend_method ​       NONE 
 +resume_method ​        ​NONE 
 +terminate_method ​     NONE 
 +notify ​               00:00:60 
 +owner_list ​           NONE 
 +user_lists ​           NONE 
 +xuser_lists ​          ​NONE 
 +subordinate_list ​     NONE 
 +complex_values ​       NONE 
 +projects ​             NONE 
 +xprojects ​            ​NONE 
 +calendar ​             NONE 
 +initial_state ​        ​default 
 +s_rt                  INFINITY 
 +h_rt                  INFINITY 
 +s_cpu                 ​INFINITY 
 +h_cpu                 ​INFINITY 
 +s_fsize ​              ​INFINITY 
 +h_fsize ​              ​INFINITY 
 +s_data ​               INFINITY 
 +h_data ​               INFINITY 
 +s_stack ​              ​INFINITY 
 +h_stack ​              ​INFINITY 
 +s_core ​               INFINITY 
 +h_core ​               INFINITY 
 +s_rss                 ​INFINITY 
 +h_rss                 ​INFINITY 
 +s_vmem ​               INFINITY 
 +h_vmem ​               INFINITY 
 +</​code>​ 
 + 
 +===  ''​qconf -spl''​ pour lister tous les environnements parallèles === 
 + 
 +Pour lister toutes les queues, on applique la commande ''​qconf -spl''​ :<​code>​ 
 +r410hybrid 
 +sequential 
 +x41zhybrid 
 +</​code>​ 
 + 
 +===  ''​qconf -sp <​Environnement Parallèle>''​ pour détailler un environnement parallèle === 
 + 
 +Pour lister toutes les queues, on applique la commande ''​qconf -sp x41zhybrid''​ :<​code>​ 
 +pe_name ​           x41zhybrid 
 +slots              128 
 +user_lists ​        ​NONE 
 +xuser_lists ​       NONE 
 +start_proc_args ​   /bin/true 
 +stop_proc_args ​    /​bin/​true 
 +allocation_rule ​   8 
 +control_slaves ​    ​TRUE 
 +job_is_first_task ​ TRUE 
 +urgency_slots ​     min 
 +accounting_summary TRUE 
 +</​code>​
  
 ==== Connaître l'​état des calculs en cours qstat ==== ==== Connaître l'​état des calculs en cours qstat ====
Ligne 89: Ligne 250:
 === Pour connaître l'​état général === === Pour connaître l'​état général ===
  
-<​code>​oarstat</​code>​+<​code>​qstat</​code>​
  
 === Pour avoir l'​information sur une tâche particulière === === Pour avoir l'​information sur une tâche particulière ===
Ligne 144: Ligne 305:
 # Nom de la queue (ici, la queue des x41z) # Nom de la queue (ici, la queue des x41z)
 #$ -q x41z #$ -q x41z
-# Nom de la queue d'​environnement parallèle ​et de requête de ressources ​: x41zhybrid avec 32 ressources+# Nom de l'​environnement parallèle ​avec le nombre ​de slots : x41zhybrid avec 32 ressources
 #$ -pe x41zhybrid 32 #$ -pe x41zhybrid 32
 # Messages a expedier : il est expedie lorsqu'​il demarre, termine ou avorte # Messages a expedier : il est expedie lorsqu'​il demarre, termine ou avorte
 #$ -m bea #$ -m bea
 # Adresse electronique d'​expedition # Adresse electronique d'​expedition
-#$ -M emmanuel.quemener@ens-lyon.fr+#$ -M <​prenom>​.<nom>@ens-lyon.fr
 #$ -cwd #$ -cwd
 #$ -V #$ -V
Ligne 160: Ligne 321:
 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 ''​qstat''​ permet ensuite de savoir que le job a bien été pris en compte.
  
 +=== Récupérer les informations sur ses jobs exécutés ===
 +
 +Dans le fichier de batch (celui qui définit les commandes à exécuter avec la queue, l'​environnement,​ etc...) apparait le paramètre préfixé de ''​-N''​. Ce paramètre est très utile parce que, comme le précise les exemples ci-dessus, les sorties POSIX ''​stdout''​ et ''​stderr''​ sont sauvegardées dans ces fichiers.
 +
 +Ainsi, en exécutant l'​exemple ci-dessus, si son numéro de job était le 528491, les fichiers de sortie seraient les suivants :
 +  * ''​MyJob.o528491''​ pour la sortie standard ''​stdout'',​ l'​ensemble des messages du terminal
 +  * ''​MyJob.e528491''​ pour l'​erreur standard ''​stderr'',​ l'​ensemble des messages en erreur du terminal
  
 +En fouillant dans ces fichiers, il est possible de voir l'​évolution de l'​exécution de son job et ses erreurs au besoin. ​
ressources/gridengine4cbp.txt · Dernière modification: 2021/09/24 16:05 par equemene