Ceci est une ancienne révision du document !


Utilisation du Cluster (et GridEngine) au Centre Blaise Pascal

Ce qu'il faut retenir !

  • pour se connecter sur la passerelle de cluster :
    ssh <login>@slethe.cbp.ens-lyon.fr
  • pour connaître les noeuds disponibles : qhost
  • pour connaître l'état des tâches : qstat
  • pour lancer une tâche définie par le script GridEngine MyJob.qsub : qsub MyJob.qsub

Introduction

Le Centre Blaise Pascal dispose de plateaux techniques, notamment des noeuds de clusters, destinés :

  • à l'initiation au calcul scientifique, notamment MPI, OpenMP, CUDA OpenCL
  • au développement d'applications dans le domaine du calcul scientifique
  • à l'intégration de démonstrateurs agrégeant des technologies matures dans un ensemble original
  • au passage de l'expérience scientifique (“la paillasse”) à la technologie de production (“le génie des procédés”
  • à l'exploration de “domaine de vol” des applications scientifiques (paramètres de parallélisation, audit de code)
  • à la réalisation de prototypes pour la mise en place de nouveaux services informatiques

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 des calculs sur de très grands nombres de coeurs (de l'ordre du millier)

Pour ces deux exigences, le PSMN 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 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 /NoeudRéseau GERéseau IBTotal CoeursTotal RAM
r410 Dell R410 48 4 24 Go GE IB 384 1.1 To
x41z Sunfire x41z 24 8 16 Go ou 32 Go GE IB 192 576 Go

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.

Accès aux clusters

L'accès aux clusters se fait via la passerelle styx.cbp.ens-lyon.fr, par le protocole SSH :

ssh -X <login>@lethe.cbp.ens-lyon.fr

ou via x2go sur la même adresse.

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.

Dossiers personnels

Sur la passerelle lethe, chaque utilisateur dispose de 3 espaces utilisateurs :

  • un local dans /home/<login>
  • un général dans /cbp/<login>
  • un rapide dans /scratch

Le second correspond à l'espace utilisateur de ressources informatiques du CBP lorsqu'il se connecte :

  • aux stations de travail de la salle libre service
  • aux machines à la demande SIDUS (Single Instance Distributing Universal System)
  • aux serveurs d'intégration, de compilation, de tests
    • sous différentes architectures matérielles : x86_64, AMD64, ARM, (PowerPC, Sparc)
    • sous différents systèmes 32 bits ou 64 bits
    • sous différentes distributions Debian : Lenny, Squeeze, Wheezy, Jessie et Sid

Accès aux ressources

L'utilisation de GridEngine permet de :

  • connaître les ressources disponibles : commande qhost 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

Connaître les ressources disponibles

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

La commande fournit en sortie :



qhost pour un noeud unique

Par exemple, la commande qhost pour examiner les ressources offertes par le noeud x41z sort :



qhost pour un cluster unique

La commande qhost va chercher toutes les ressources (coeurs) disposant de l'entrée cluster=v20z.

Connaître l'état des calculs en cours qstat

Pour connaître l'état général

oarstat

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



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)

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.

Lancer un batch séquentiel

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.qsub

Le script de batch MyJob.qsub 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

Lancer un batch parallèle

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.qsub :

# 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 la queue d'environnement parallèle et de requête de ressources : 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 emmanuel.quemener@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.

ressources/gridengine4cbp.1441027259.txt.gz · Dernière modification: 2015/08/31 15:20 par equemene