Accéder au contenu principal

Déploiement d'une grappe de calcul: gestionnaire de ressources OAR

Contenu

 Introduction

OAR gestionnaire de ressources, l'un des plus utilisé par exemple sur la GRID'5000. Il a été développé à GRENOBLE consultez : http://oar.imag.fr/.  La première chose à savoir est l’architecture OAR. L’installation du gestionnaire OAR est composé :
·         du server OAR qui détient «l’intelligence» d’OAR ;
·         du serveur de base de données.
·         du frontal de soumission des tâches sur lequel on va se loguer pour réserver certains nœuds de calcul.
·         des nœuds de calcul sur lesquels les calculs s’exécuteront.
Étant donné qu’on fait une installation sur les distributions Debian, cette installation est faite sur le système d'exploitation Debian GNU/Linux 6.0.4 Squeeze Official i386

I. Préparation de l'environnement

            Pour tous les nœuds qui concerne la grappe de calcul, procédons  à une préparation de l'environnement afin d'installer les paquets. On peut installer en utilisant les paquets déjà téléchargés (dpkg -i paquet par cette commande) mais si l'on peut avoir une connexion internet je conseillerais  de le faire en ligne afin d'obtenir les paquets récents et résoudre facilement les dépendances (apt-get install paquet).
Il nous faut une source pour installer les paquets comme le DHCP, le DNS. Dans notre exemple, on utilise le miroir de l'université de Ngaoundéré :
·         le système Debian 6.0 – Squeeze

  • deb http://miroir.univ-ndere.cm/debian/ squeeze main contrib non-free
  • deb http://miroir.univ-ndere.cm/debian-security squeeze/updates main contrib non-free

Ou encore pour ceux qui n’accèdent pas au miroir de l'université de Ngaoundéré, utiliser:
·         le système Debian 6.0 – Squeeze:
  • deb http://ftp.fr.debian.org/debian/ squeeze main
  • deb http://ftp.fr.debian.org/debian/ squeeze-updates main

I.1. Les étapes d'ajout de dépôt dans la sources.list

I.1.1 Pour ajouter ces dépôts procédez comme suit:

  • lancer le terminal ;
  • loguer vous root ou bien utiliser sudo
  • abou@aboubakar:/home/cinfopres# su root, valider et entrer votre mot de passe.
  • Si vous avez un superuser  alors utiliser la commande sudo
  • root@aboubakar:/home/cinfopres# nano /etc/apt/sources.list
  • saisir un des dépôts cités plus haut dans votre fichier sources.list
  • Enregistrer : Ctrl + o puis taper Entrer.
  • Quitter : Ctrl + x puis taper Entrer

II. Installation OAR

    OAR concerne les nœuds serveur, de calcul et le nœud frontal

II.1 Préparation de l'environnement pour oar

            Pour tous les nœuds procéder à une préparation de l'environnement afin d'installer les paquets. On peut installer en utilisant les paquets déjà téléchargés (dpkg -i paquet par cette commande) mais si l'on peut avoir une connexion internet je conseillerais  de le faire en ligne afin d'obtenir les paquets récents et résoudre facilement les dépendances (apt-get install paquet).
Il nous faut une source pour installer les paquets oar. Dans notre exemple, on utilise le miroir de l’image de oar de France :
· OAR stable releases 2.5 :
o   deb http://oar-ftp.imag.fr/oar/2.5/debian/sid main
o   deb http://oar-ftp.imag.fr/oar/2.5/debian/squeeze main

Pour ajouter ce dépôt consulter : Les étapes d'ajout de dépôt dans la sources.list présenté plus haut

II.2. Nœud serveur

    Dans ce guide d’installation, on va installer la base de données mysql-server

II.2.1. Exécution des différentes commandes

1. root@aboubakar:/home/cinfopres# apt-get update

/* apt-get update permet de mettre à jour la liste des programmes (appelés paquets) qui existent */

2. root@aboubakar:/home/cinfopres#  apt-get install gcc make tar python-docutils

/* gcc : le paquet contient les fichiers communs à tous les langages et bibliothèques inclus dans la collection de compilateurs GNU (GCC, « GNU Compiler Collection »)http://packages.debian.org/fr/sid/gcc-4.4-base. */

3. root@aboubakar :/home/cinfopres# apt-get install perl perl-base openssh-client openssh-server libdbi-perl libsort-versions-perl

4. root@aboubakar:/home/cinfopres# apt-get install mysql-server mysql-client libdbd-mysql-perl
5. root@aboubakar:/home/cinfopres# apt-get install oar-server oar-server-mysql

II.2.2. Téléchargement du paquet OAR_VERSION_2.5.2
Cliquer simplement sur le lien ci-dessous ou aller sur une page de votre navigateur et taper: http://oar-ftp.imag.fr/oar/2.5/sources/stable/oar-2.5.2.tar.gz, accéder au dossier contenant le fichier et le dézipper.
III.2.2.1. Exécution de OAR_VERSION_2.5.2
Exécuter sur votre terminal :
·         root@aboubakar:/home/cinfopres# tar xzvf oar-2.5.2.tar.gz

Accéder maintenant au dossier dézipper !

·         root@aboubakar:/home/cinfopres# cd oar-2.5.2/


II.2.2.3. Fabriquons, installons et configurons

NB : être en root pour exécuter ces différentes commandes.

1. root@aboubakar:/home/cinfopres# make server-build

2. root@aboubakar:/home/cinfopres# make server-install

3. root@aboubakar:/home/cinfopres# make server-setup

II.2.2.4.  Création et Configuration de la base de données oar
On a utilisé mysql-server pendant l'installation. Cette étape de configuration permet de définir les éléments de configuration de la base de données contenue dans le fichier oar.conf.

Ces éléments concernent:
DB_TYPE ;
DB_HOSTNAME ;
DB_PORT ;
DB_BASE_NAME ;
DB_BASE_LOGIN ;
DB_BASE_PASSWD ;
DB_BASE_LOGIN_RO ;
DB_BASE_PASSWD_RO.

On retrouve Consulter par : nano /etc/oar/oar.conf .
 II.2.2.4.1. Modification du fichier oar.conf
    Ouvrir ce fichier :
·         root@aboubakar:/home/cinfopres# nano /etc/oar/oar.conf

a. Vérifier si ces lignes contiennent les champs suivants sinon les Modifier pour obtenir:

·         Database base name
DB_BASE_NAME="oar"

·         DataBase user name
DB_BASE_LOGIN="oar"

·         DataBase user password
DB_BASE_PASSWD="oar"

·         DataBase read only user name
DB_BASE_LOGIN_RO="oar_ro"

·         DataBase read only user password
DB_BASE_PASSWD_RO="grappe"


NB:<grappe> étant le mot de passe de ma machine utilisée. Utilisez le mot de passe de la machine sur laquelle vous travaillez.
II.2.2.4.2. Création de la base de données
 Pour créer une base de données de nom oar dans le SGBD (système de gestion de bases de données) mysql-server pour le compte de la grappe:
root@aboubakar:/home/cinfopres# oar-database --create  -db-user oar  --db-pass grappe --db-admin-user  root  --db-admin-pass  oar

Pour plus de détail, vous pouvez exécuter:

root@aboubakar:/home/cinfopres# oar-database –create  --db-type  mysql  --db-user oar  --db-pass oar --db-admin-user root --db-admin-pass oar

II.2.2.4.3. Lancement de la base de données oar
Rédemarrer le serveur oar
    /etc/init.d/oar-server restart

II.2.2.5.  Ajouter des nœuds de calcul dans la base de données
     Pour ajouter des ressources à votre système, vous pouvez utiliser (en tant que root) la commande  oarnodesetting.

    Pour une compréhension complète de ce que cela commande, tapez man oarnodesetting. Par exemple, pour ajouter une ressource de calcul dans votre base de données OAR, vous pouvez taper:

·         oarnodesetting -a -h  <NODE_IP>

II.3. Nœud de calcul

             Comme toute installation, veuillez exécuter les étapes de préparation de l'environnement (les étapes : I. Préparation de l'environnement, II.1 Préparation de l'environnement pour oar).

II.3.1. Exécution des différentes commandes

1. root@aboubakar:/home/cinfopres# apt-get update

/* apt-get update permet de mettre à jour la liste des programmes (appelés paquets) qui existent */

2. root@aboubakar :/home/cinfopres#  apt-get install gcc make tar python-docutils

/* gcc : le paquet contient les fichiers communs à tous les langages et bibliothèques inclus dans la collection de compilateurs GNU (GCC, « GNU Compiler Collection »)  . Il permet de construire les dépendances.*/

3. root@aboubakar :/home/cinfopres# apt-get install perl perl-base openssh-client openssh-server

4.  root@aboubakar :/home/cinfopres# apt-get install oar-node

II.3.2. Téléchargement du paquet OAR_VERSION_2.5.2

            Cliquer simplement sur le lien ci-dessous ou aller sur une page de votre navigateur et taper: http://oar-ftp.imag.fr/oar/2.5/sources/stable/oar-2.5.2.tar.gz, accéder au dossier contenant le fichier et le dézipper.
II.3.2.1. Exécution de OAR_VERSION_2.5.2

Exécuter sur votre terminal :
·         root@aboubakar:/home/cinfopres# tar xzvf oar-2.5.2.tar.gz

Accéder maintenant au dossier dézipper
·         root@aboubakar:/home/cinfopres# cd oar-2.5.2/

II.3.2.1. Fabriquons, installons et configurons ce paquet.

NB : être en root pour exécuter ces différentes commandes.

1. root@aboubakar:/home/cinfopres# make node-build

2. root@aboubakar:/home/cinfopres# make node-install

3. root@aboubakar:/home/cinfopres# make node-setup

II.3.3 Configuration  d'accès par ssh

On doit être sûr que les nœuds oar peuvent accéder à tous les autres nœuds à travers ssh. Pour cela, il faut juste copier le répertoire /var/lib/oar/.ssh du nœud serveur sur le nœud de calcul.

II.3.4. Lancement du nœud de calcul

Pour démarrer le nœud de calcul dans la grappe de calcul HPC, il suffit de redémarrer le nœud oar en procédant comme suit :
·         root@aboubakar:/home/cinfopres#  /etc/init.d/oar-node restart

II.4. Nœud frontal (Frontend node)

Comme toute installation, veuillez exécuter les étapes de préparation de l'environnement(les étapes : I. Préparation de l'environnement, II.1 Préparation de l'environnement pour oar).
NB : on utilise le nœud serveur pour faire les réservations des utilisateurs

II.4.1. Exécution des différentes commandes


1. root@aboubakar:/home/cinfopres# apt-get update

/* apt-get update permet de mettre à jour la liste des programmes (appelés paquets) qui existent */

2. root@aboubakar :/home/cinfopres#  apt-get install gcc make tar python-docutils

/* gcc : le paquet contient les fichiers communs à tous les langages et bibliothèques inclus dans la collection de compilateurs GNU (GCC, « GNU Compiler Collection »)[1]. Il permet de construire les dépendances.*/

3. root@aboubakar :/home/cinfopres# apt-get install perl perl-base openssh-client openssh-server libdbi-perl


4. root@aboubakar :/home/cinfopres# apt-get install mysql-client libdbd-mysql-perl

5. root@aboubakar :/home/cinfopres#apt-get install oar-user oar-user-mysql

II.4.2. Téléchargement du paquet OAR_VERSION_2.5.2

             Cliquer simplement sur le lien ci-dessous ou aller sur une page de votre navigateur et taper: http://oar-ftp.imag.fr/oar/2.5/sources/stable/oar-2.5.2.tar.gz, accéder au dossier contenant le fichier et le dézipper.
II.4.2.1. Exécution de OAR_VERSION_2.5.2
Exécuter sur votre terminal :
   root@aboubakar:/home/cinfopres# tar xzvf oar-2.5.2.tar.gz
Accéder maintenant au dossier dézipper
   root@aboubakar:/home/cinfopres# cd oar-2.5.2/

II.4.3. Fabriquons, installons et configurons ce paquet.


NB : être en root pour exécuter ces différentes commandes.

1. root@aboubakar:/home/cinfopres# make user-build

2. root@aboubakar:/home/cinfopres# make user-install

3. root@aboubakar:/home/cinfopres# make user-setup

II.4.3 Configuration  d'accès par ssh


    NB: comme il s'agit de la même machine que le serveur, on n’a pas besoin de faire la copie du répertoire /var/lib/oar/.ssh.

    On doit être sûre que les nœuds oar peuvent accéder à tous les autres nœuds à travers ssh.
Pour cela, il faut juste copier le répertoire /var/lib/oar/.ssh du nœud serveur sur le nœud de calcul.

IV. Exploitation de la grappe de calcul

IV.1. Installation et Configuration de la grappe (Testons notre environnement)


       Vous voulez travailler sur la grappe rien de plus simple, il faut simplement se connecter en SSH sous n'importe quel système d'exploitation.
1. Connexion

Sous Windows

Lancez PuTTY. Lors de la première connexion, il faut configurer une session. Renseignez les champs suivant :
  • Host name : ubuntu
  • Connection type : SSH
  • Saved Sessions : ugrappe

Sous Linux

Se connecter en SSH avec sa clé publique (plutôt que son mot de passe) présente quelques avantages : sécurité renforcée, se connecter en SSH.
Dans un terminal, exécutez : ssh user@nom_machine en remplaçant user par le nom de votre utilisateur SSH.
 Par exemple : ssh ugrappe@ubuntu   NB: serveur est le nom de la machine serveur de la grappe ou encore ssh ugrappe@adresse_IP

2- exécution de la commande de soumission d'un job à OAR

 a. Soumission pour tâche interactive taper dans le terminal:
Pour demander 4 (quatre) nœuds de calcul.
·         ugrappe@Serveur:~$ oarsub -I -l nodes=4
[ADMISSION RULE] Set default walltime to 7200.
[ADMISSION RULE] Modify resource description with type constraints
OAR_JOB_ID=33
Interactive mode : waiting...
Starting...
Initialize X11 forwarding...
Connect to OAR job 33 via the node 192.168.1.20
 b.   Soumission en batch (avec walltime et choix de queue) :
oarsub -q default -l walltime=2 :00, nodes=10    programme/cpi
le programme « cpi » est un script. Soumission pour deux heures avec 10 noeuds et
Soumission d’une réservation :
                oarsub -r "2012-12-04 00:30" -l nodes=4
oarsub -l nodes=4 -r "2012-12-04 00:30:00"
[ADMISSION RULE] Set default walltime to 7200.
[ADMISSION RULE] Modify resource description with type constraints
OAR_JOB_ID=34
Reservation mode : waiting validation...
Reservation valid --> OK
            Connection à une réservation (utilise le numéro de tâche) :
 oarsub -C <OAR_JOB_ID> par exemple le job 33 ou 34 ci-dessus exécuté et réservé.

4)      Voir les noeuds accordés à une réservation(par exemple)

  cat $OAR_NODEFILE 
192.168.1.20
192.168.1.5
192.168.1.8
192.168.1.9

5)  Voir les caractéristiques d'un nœud de calcul


6)      Compiler et Lancer une exécution séquentielle  (en mode interactif et passif)

 a. compiler
  mpicc programme/cpi.c -o programme/cpi_c
 b. lancer une exécution séquentielle
  cd programme
  mpirun -np 3 cpi 

7. Suivre l'exécution d'un processus

oarstat -fj 31
on obtient les informations suivantes:
Job_Id: 41
    job_array_id = 41
    job_array_index = 1
    name =
    project = default
    owner = ugrappe
    state = Running
    wanted_resources = -l "{type = 'default'}/resource_id=1,walltime=2:0:0"
    types =
    dependencies =
    assigned_resources = 16
    assigned_hostnames = 192.168.1.9
    queue = default
    command =
    launchingDirectory = /home/ugrappe
    stdout_file = OAR.41.stdout
    stderr_file = OAR.41.stderr
    jobType = INTERACTIVE
    properties = desktop_computing = 'NO'
    reservation = None
    walltime = 2:0:0
    submissionTime = 2012-12-03 13:25:49
    startTime = 2012-12-03 13:25:50
    cpuset_name = ugrappe_41
    initial_request = oarsub -I
    message = Karma = 2.857
    scheduledStart = 2012-12-03 13:25:50
    resubmit_job_id = 0
    events =

7 mpirun -hostfile $OAR_NODE_FILE -np

8. Se déconnecter

ugrappe@noeud1:~$ logout
Connection to 192.168.1.20 closed.
Disconnected from OAR job 33

9. Consulté les fichiers de résultat générés par OAR


·         cat OAR.35.stdout

Deux fichiers sont créés dans le répertoire pour la sortie des résultats à savoir la sortie standard et la sortie d'erreur.
·         cat OAR.35.stderr

10. Arrêter un job

  oardel 41
Deleting the job = 41 ...REGISTERED.
The job(s) [ 41 ] will be deleted in a near future.
et sur le noeud connecté on a :
bash: line 1: 2104 Killed ( exec -a -${SHELL##*/} $SHELL )
Connection to 192.168.1.9 closed.
Disconnected from OAR job 41


12) taktuk -c "oarsh" -f $OAR_FILE_NODES broadcast exec [ date ]
192.168.1.12-1: date (6134): output > Mon Dec 3 13:39:41 CET 2012
192.168.1.20-2: date (2323): output > Mon Dec 3 13:39:47 CET 2012
192.168.1.20-2: date (2323): status > Exited with status 0
192.168.1.9-3: date (2466): output > Mon Dec 3 13:39:49 CET 2012
192.168.1.12-1: date (6134): status > Exited with status 0
192.168.1.9-3: date (2466): status > Exited with status 0





Commentaires

Posts les plus consultés de ce blog

Boubou Africain Homme | Tenue Africaine

Boubou africain pour homme. Vêtement traditionnel africain par excellence, le boubou se décline en une infinité de tissus et de coloris. Le boubou est ample et très agréable à porter.

CNPBM : National Commission for the Promotion of Bilingualism and Multiculturalism / Commission Nationale pour la Promotion du Bilinguisme et du Multiculturalisme.

LEGAL FRAMEWORK CULTURE You are here Home   »   The Commission . The NCPBM in Brief Creation:  The  Commission was created by decree No: 2017/013 of the 23 rd  January 2017. Legal Status:  advisory body with legal personality and financial autonomy. Position:  placed under the Authority of the President of the Republic. Attributions:  Responsible for promoting Bilingualism and Multiculturalism in Cameroon with a view to: - maintaining peace; - consolidation the country’s unity; - strengthening its people’s willingness and day to day experience with respect to living together. Issue areas: submit reports and recommendations on issues relating to the protection of Bilingualism and Multiculturalism to the President of the Republic;   monitor the healthy implementation of article 1 sub (3) of the constitution on the equal status of French and Englishas two official languages;   conduct studies and surveys proposing

Programmation Web MVC

Développement d'application web basé sur le Modèle MVC Introduction D'après [1],  Le patron   modèle-vue-contrôleur   (en abrégé   MVC , de l' anglais   model-view-controller ), tout comme les patrons   modèle-vue-présentation   ou   Présentation, abstraction, contrôle , est un modèle destiné à répondre aux besoins des applications interactives en séparant les problématiques liées aux différents composants au sein de leur architecture respective. D'après [2],  “Dans le paradigme MVC l’entrée utilisateur, la modélisation du monde extérieur, l’aspect visuel présenté l’utilisateur sont explictement séparés et gérés par trois types d’objet, chacun spécialisé dans sa tâche.”   Ce  paradigme  regroupe les fonctions nécessaires en trois catégories : un  modèle  (modèle de données), une  vue  (présentation, interface utilisateur) un contrôleur (logique de contrôle, gestion des événements, synchronisation) Le modèle MVC e s t ba s e   s ur un principe trè s