Ceci est une ancienne révision du document !
ssh <login>@lethe.cbp.ens-lyon.fr
sinfo
squeue
sacct -N <Noeuds> -n <Coeurs>
MyJob.slurm
: sbatch MyJob.slurm
Le Centre Blaise Pascal dispose de plateaux techniques, notamment des noeuds de clusters, destinés :
Le Centre Blaise Pascal n'a pas vocation à voir ses infrastructures utilisées :
Pour ces deux exigences, le PSMN dispose d'une infrastructure de production.
Les équipements accessibles via le soumissionneur SLURM sont 72 noeuds R410 répartis dans 2 groupes différents pour un total de 576 coeurs et 1728 GB de RAM.
Cluster | Marque | Modèle | Noeuds | Coeurs /Noeud | RAM /Noeud | Réseau GE | Réseau IB | Total Coeurs | Total RAM |
r410 | Dell | R410 | 64 | 8 | 24Go | GE | IB | 512 | 1536 GB |
galaxy | Dell | R410 | 8 | 8 | 24Go | GE | IB | 64 | 192 GB |
Ces clusters partagent exactement la même image de système, 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.
L'accès aux clusters se fait via la passerelle lethe.cbp.ens-lyon.fr
, par le protocole SSH :
ssh -X <login>@lethe.cbp.ens-lyon.fr
ou via 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.
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 directement le bureau graphique.
Sur la passerelle lethe
, chaque utilisateur dispose de 3 espaces utilisateurs :
/home/<login>
/cbp/<login>
/scratch
Le second correspond à l'espace utilisateur de ressources informatiques du CBP lorsqu'il se connecte :
ssh-keygen -t rsa
dans mot de passe <Entrée>
pour entrer un mot de passe videGenerating 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 | | .... | +-----------------+
cd $HOME/.ssh cp id_rsa.pub authorized_keys
ssh lethe
L'utilisation de SLURM permet de :
sinfo
et ses optionssqueue
et ses optionssalloc
et ses optionssbatch
et ses options
La commande sinfo
permet de connaître l'état des noeuds gérés par le gestionnaire de tâches.
Fri Feb 5 11:35:13 2016 NODELIST NODES PARTITION STATE CPUS S:C:T MEMORY TMP_DISK WEIGHT FEATURES REASON r410node[1-64] 64 r410* idle 16 2:4:2 1 0 1 (null) none r410node[65-72] 8 galaxy idle 16 2:4:2 1 0 1 (null) none
La commande fournit en sortie :
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST galaxy up infinite 8 idle r410node[65-72] r410* up infinite 64 idle r410node[1-64]
squeue
Pour connaître toutes les informations sur la tâche 9, par exemple, qstat -j 9
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.
Il est possible de lancer un batch en précisant les paramètres (queue, environnement parallèle, etc) mais il est nécessaire de toutes façons de créer un script shell.
Autant créer un script de lancement GridEngine lequel sera utilisé pour déclarer tout d'un bloc.
Le propre d'un programme séquentiel est qu'il ne peut pas se distribuer sur plusieurs noeuds.
Nous voulons exécuter le programme MPI MyJob
sur 1 seul coeur, sur la queue des x41z.
Nous voulons que le nom de fichiers de de sortie soit préfixés de MyJob
.
Le lancement de batch se fait par :
qsub MyJob.slurm
Le script de batch MyJob.slurm
est le suivant :
# Nom du programme pour les sorties (sortie standard et sortie erreur Posix) #$ -N MyJob # Nom de la queue (ici, la queue des x41z) #$ -q x41z # Messages a expedier : il est expedie lorsqu'il demarre, termine ou avorte #$ -m bea # specify your email address #$ -M <prenom>.<nom>@ens-lyon.fr #$ -cwd #$ -V # Lancement du programme /usr/bin/time ./MyJob exit 0
Nous voulons exécuter le programme MPI MyJob
sur 32 coeurs sur la queue des x41z.
Nous voulons que le nom de fichiers de de sortie soit préfixés de MyJob
.
Nous créons le script suivant sous le nom (très original) de MyJob.slurm
:
# Nom du programme pour les sorties (sortie standard et sortie erreur Posix) #$ -N MyJob # Nom de la queue (ici, la queue des x41z) #$ -q x41z # Nom de l'environnement parallèle avec le nombre de slots : x41zhybrid avec 32 ressources #$ -pe x41zhybrid 32 # Messages a expedier : il est expedie lorsqu'il demarre, termine ou avorte #$ -m bea # Adresse electronique d'expedition #$ -M <prenom>.<nom>@ens-lyon.fr #$ -cwd #$ -V /usr/bin/time mpirun.openmpi -np 32 -mca btl self,openib,sm ./MyJob exit 0
Le programme se lance en utilisant la commande de soumission qsub ./MyJob.qsub
.
La commande d'examen des tâches en cours qstat
permet ensuite de savoir que le job a bien été pris en compte.