Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
ressources:gridengine4cbp [2015/08/31 15:20] equemene |
ressources:gridengine4cbp [2021/09/24 16:05] 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 3 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 8 groupes différents pour un total de 1416 coeurs et 6016 Go de RAM. |
- | 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. | + | Sur les 52 noeuds R410 arrivés entre le printemps 2014 et l'automne 2015, tous sont disponibles via le gestionnaire GridEngine. |
| **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 | | + | | **r410qdr** | Dell | R410 | 32 | 8 | 24 Go | GE | IB QDR | 256 | 1536 Go | |
- | | **x41z** | Sunfire | x41z | 24 | 8 | 16 Go ou 32 Go | GE | IB | 192 | 576 Go | | + | | **r410ddr** | Dell | R410 | 4 | 8 | 24 Go | GE | IB DDR | 32 | 96 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 39: | ||
===== 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 3 espaces utilisateurs : | + | Sur la passerelle ''lethe'', chaque utilisateur dispose de 4 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 63: | ||
* 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 97: | ||
* 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 103: | ||
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 calcul, on 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 243: | ||
=== 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 298: | ||
# 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 314: | ||
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. |