Mineure HPC & Support au Big Data
Cours de 3ème année à Supélec

Connexion et allocation de machines sur le Data Center d'Enseignement

Stéphane Vialle
  1. Connexion au Data Center d'Enseignement (cluster, frontales, et comptes) :

Clusters de CPU :
  • La machine phome.metz.supelec.fr est utilisée pour accueillir les connexions des utilisateurs, et pour allouer des noeuds de calcul à travers l'environnement OAR sur les clusters Sarah et Kyle.
  • Sarah est un cluster de 32 PCs contenant chacun 2 processeurs Intel Haswell quadri-coeurs hyperthreadés, et installés sous Linux. Les 32 "noeuds de calcul" sont interconnectés par un unique switch 10-Gigabit Ethernet standard.
  • Kyle est un cluster de 66 PCs contenant chacun 2 processeurs Intel Skylake octo-coeurs hyperthreadés, et installés sous Linux. Les 66 "noeuds de calcul" sont interconnectés par deux switchs 10-Gigabit Ethernet standard.
Machines équipées d'un GPU :
  • La machine ghome.metz.supelec.fr est utilisée pour accueillir les connexions des utilisateurs.
  • La machine term2.grid.metz.supelec.fr est ensuite utilisée pour allouer des noeuds de calcul à travers l'environnement OAR sur les machines de Cameron et Tx.
  • Cameron est un ensemble de 17 PCs contenant chacun 1 processeur Intel Sandy-Bridge hexa-coeurs hyperthreadés, associé à un GPU GTX 1080, et installés sous Linux. Les 17 "noeuds de calcul" sont interconnectés par un unique switch 10-Gigabit Ethernet standard.
  • Tx est un ensemble de 17 PCs contenant chacun 1 processeur Intel Skylake quadri-coeurs hyperthreadés, associé à un GPU RTX 2080Ti, et installés sous Linux. Les 17 "noeuds de calcul" sont interconnectés par un unique switch 10-Gigabit Ethernet standard.
Comptes de TP CenraleSupélec sur le Data Center d'Enseignement :
  • pour les étudiants de Gif : cpucs1_# (cpucs1_1 à cpucs1_20), avec un passwd spécifique,
  • pour les étudiants de Metz : cpucs2_# (cpucs2_1 à cpucs2_20), avec un passwd spécifique,
  • pour les étudiants de Gif : gpucs1_# (gpucs1_1 à gpucs1_20), avec un passwd spécifique,
  • pour les étudiants de Metz : gpucs2_# (gpucs2_1 à gpucs2_20), avec un passwd spécifique,
Procédure de connexion :
  • Connexion à un cluster de CPU
    • Vous vous connecterez par ssh ou putty sur la frontale phome.metz.supelec.fr en indiquant votre login de TP à Metz
    • Puis vous utiliserez OAR (voir ci-dessous) pour allouer des noeuds de calculs sur les clusters de CPU
Vous ne vous connecterez PAS sur les noeuds de calcul par ssh, mais seulement grace aux commandes OAR.
  • Connexion à une machine GPU
    • Vous vous connecterez par ssh ou putty sur la frontale ghome.metz.supelec.fr en indiquant votre login de TP à Metz,
    • Puis par ssh vous vous connecterez sur la frontale term2.grid
    • Puis vous utiliserez OAR (voir ci-dessous) pour allouer une machine disposant d'un GPU
Vous ne vous connecterez PAS sur une machine équipée d'un GPU par ssh, mais seulement grace aux commandes OAR.
  1. Allocation de machines de calcul

Un cluster de calcul possède toujours un environnement d'allocation/gestion de ses noeuds de calculs, et de lancement et gestion de programmes batch ou de sessions interactives. Dans le cas du Data Center d'Enseignement de CentraleSupélec il s'agit de l'environnement "OAR" de la communauté GRID'5000 (grille d'expérimentation française).

2.1 Utilisation d'OAR pour créer des sessions de travail interactives
  • La commande 'oarstat' permet de voir les 'sessions'  en cours d'exécution et en attente sur le cluster.
  • Sur phome.metz.supelec.fr l'environnement OAR gère DEUX clusters de CPU ('Kyle' et 'Sarah'). Il faut préciser le cluster utilisé lors de la réservation des noeuds avec la commande oarsub :
'oarsub -p "cluster='Sarah'" -l nodes=1,walltime=5:00:00 -I'
permet d'allouer 1 PC (1 noeud) du cluster Sarah en mode interactif pour 5h.
  • Sur term2.grid.metz.supelec.fr l'environnement OAR gère DEUX clusters de machines équipées de GPU ('Cameron' et 'Tx'). Il faut préciser le cluster utilisé lors de la réservation des noeuds avec la commande oarsub :
'oarsub -p "cluster='Tx'" -l nodes=1,walltime=5:00:00 -I'
permet d'allouer 1 PC (1 noeud) du cluster Tx en mode interactif pour 5h.
  • Faites une demande de session interactive par oarsub, et ensuite une commande oarstat. Vous devez observer votre session dans la liste des sessions en cours d'exécution.
  • La commande 'oardel #numéro_de_session' permet de supprimer une de vos sessions en cours d'exécution (plutôt depuis une machine frontale). Mais un simple CTRL-D entré dans la session interactive vous delogguera du premier coeur alloué, et supprimera votre session.
2.2 Utilisation d'OAR pour exécuter des pgms (séquentiels ou parallèles) en "batch" :
  • La commande 'oarsub' permet d'allouer des ressources, et d'y exécuter aussi une "session batch" : exécuter un pgm (parallèle) sur les noeuds de calcul depuis la frontale. On exécute alors un "shellscript" qui inclut la génération du fichier 'machinefile.txt' puis l'exécution de la commande 'mpirun ...'. Les résultats normalement affichés à l'écran seront alors disponibles dans un fichier 'OAR.#numero_de_session.stdout', ou dans un fichier'OAR.#numero_de_session.stdout' en cas d'erreur.
Une 'session batch' peut très bien être mise en file d'attente si les ressources demandées ne sont pas disponibles, et être exécutée automatiquement plus tard. En revanche, la moindre erreur dans le shellscript mettra fin à la session batch! Il est impératif d'avoir testé le bon fonctionnement du programme parallèle et du shellscript en mode interactif avant de lancer de gros calculs en 'batch'.
  • Pour lancer une session batch, on utilise toujours 'oarsub', mais on termine la commande par le nom du shellscript à la place de '-I'. Ex : 
oarsub -p "cluster='Sarah'" -l nodes=1,walltime=5:00:00 './MatrixProduct ....'

Ou bien en écrivant un fichier 'MatrixProduct.sh' contenant par exemple :
./MatrixProduct -k 1 -nt 2

Et en exécutant :
oarsub -p "cluster='Sarah'" -l nodes=1,walltime=5:00:00 ./MatrixProduct.sh
  • Rmq : pour que l'exemple précédent fonctionne il faut :
    • que le shellscript soit un fichier exécutable : entrez 'chmod 755 MatrixProduct.sh' pour le rendre exécutable.
    • que la commande 'oarsub' soit entrée depuis un terminal qui est dans le répertoire où se trouvent 'MatrixProduct.sh' et 'MatrixProduct', sinon il faudra préciser le bon chemin d'accès à ces fichiers.