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
II.2.2.4.2. Création
de la base de données
II.2.2.4.3.
Lancement de la base de données oar
II.2.2.5.
Ajouter des nœuds de calcul dans la base de données
II.3.
Nœud de calcul
II.3.1.
Exécution des différentes commandes
II.3.2.
Téléchargement du paquet OAR_VERSION_2.5.2
II.3.2.1.
Exécution de OAR_VERSION_2.5.2
II.3.2.1.
Fabriquons, installons et configurons ce paquet.
II.3.3
Configuration d'accès par ssh
II.3.4.
Lancement du nœud de calcul
II.4.
Nœud frontal (Frontend node)
II.4.1.
Exécution des différentes commandes
II.4.2.
Téléchargement du paquet OAR_VERSION_2.5.2
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
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.
II.4.3
Configuration d'accès par ssh
IV.
Exploitation de la grappe de calcul
IV.1. Installation
et Configuration de la grappe (Testons notre environnement)
Sous Windows
Sous Linux
2- exécution de la commande de
soumission d'un job à OAR
4) Voir les noeuds accordés à une
réservation(par exemple)
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)
7. Suivre l'exécution d'un processus
7 mpirun -hostfile $OAR_NODE_FILE
-np
8. Se déconnecter
9. Consulté les fichiers de résultat
générés par OAR
10. Arrêter un job
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
Enregistrer un commentaire
Aidez nous à nous améliorer