Introduction,
En informatique, le parallélisme consiste à mettre en œuvre des architectures permettant de traiter des informations de manière simultanée, ainsi que les algorithmes spécialisés pour celles-ci. Ces techniques ont pour but de réaliser le plus grand nombre d’opérations en un temps le plus petit possible. Afin de pouvoir étudier la programmation parallèle, il faut tout d'abord créer un cluster de machines capable de fonctionner en parallèle. Le but de ce projet est de pouvoir obtenir un tel cluster et j’utilise Le Framework HTCondor pour lancer un programme sur le cluster.
Build automatique et distribution OTA avec Xcode 4.x et Jenkins
Creation de cluster (Master et deux slave ) nfs, htcondor, mpi
1. HTCONDOR Calcul parallèle, MPI
1
Prof: C.EL AMRANI
Département Génie d’Informatique
Faculté des Sciences et Techniques
TANGER
Rapport
Projet Fin Module
Parallélisme
HTCondor
Master Système Informatique et Mobile
Réalisé par : Encadré par :
➢ EDAIG KHALID. Prof: C. EL AMRANI
2. HTCONDOR Calcul parallèle, MPI
2
Sommaire
1. Introduction......................................................................................................3
2. De quoi a-t-on besoin ?....................................................................................3
3. Qu'est-ce que HTCondor ? .............................................................................3
3.1. Installation :......................................................................................................................................................3
4. Architecture de cluster ....................................................................................3
5. Configuration générale sur tous les serveurs : .............................................4
6. Installation de MPICH ....................................................................................5
7. Teste Framework MPI ....................................................................................6
8. Le droit root sur ces machines........................................................................7
8.1. Mettre en place le Passwordless SSH :..........................................................................................................7
9. Mettre en place un partage NFS ....................................................................9
10.Tester notre infrastructure:..........................................................................11
11.Configuration HTCondor .............................................................................12
12.Teste HTCONDORE dans mon cluster.......................................................12
12.1. Soumettre un travail avec vanilla universe.................................................................................................13
12.2. Soumettre un tarvail avec Parallel universe :.............................................................................................14
3. HTCONDOR Calcul parallèle, MPI
3
1.Introduction
En informatique, le parallélisme consiste à mettre en œuvre des architectures permettant de traiter des
informations de manière simultanée, ainsi que les algorithmes spécialisés pour celles-ci. Ces techniques ont
pour but de réaliser le plus grand nombre d’opérations en un temps le plus petit possible. Afin de pouvoir
étudier la programmation parallèle, il faut tout d'abord créer un cluster de machines capable de fonctionner
en parallèle. Le but de ce projet est de pouvoir obtenir un tel cluster et j’utilise Le Framework HTCondor
pour lancer un programme sur le cluster.
2.De quoi a-t-on besoin ?
• Une machine « master »(virtuelle) Ubuntu Server.
• Deux machines « slave »(virtuelles) Ubuntu Server.
• Installation mpich pour calcule parallèle
• Le droit root sur ces machines.
• Installation et configuration nfs
• Installation et configuration HTCondor
3.Qu'est-ce que HTCondor ?
HTCondor est un système spécialisé de gestion de la charge de travail pour les travaux nécessitant beaucoup
de calcul. Comme d’autres systèmes de traitement par lots complets, HTCondor fournit un mécanisme de
mise en file d’attribution des tâches, une stratégie de planification, un schéma de priorité, une surveillance
des ressources et une gestion des ressources. Les utilisateurs soumettent leurs travaux en série ou en
parallèle à HTCondor. Ce dernier les place dans une file d'attente, choisit où et quand exécuter les travaux en
fonction d'une stratégie, surveille attentivement leur progression et en informe l'utilisateur à la fin.
• Condor (renommé HTCondor en octobre 2012)
• Condor tourne sur les systèmes Linux, Unix, Mac OS X, FreeBSD, et sur les systèmes Windows
actuels.
3.1. Installation :
$ sudo apt-get update : mise à jours de OS
$ sudo apt-get install htcondor <<version>>
4.Architecture de cluster
J’utilise virtualBox pour créer des machines virtuelles :
• Un machine virtuelle ‘server.masetr’ de l’adresse IP :10.0.3.4/24
• Deux machines virtuelles ‘server.slave1’ et ‘server.slave2’
o ‘server.slave1’ de l’adresse IP :10.0.3.5/24
o ‘server.slave2’ de l’adresse IP :10.0.3.6/24
4. HTCONDOR Calcul parallèle, MPI
4
5.Configuration générale sur tous les serveurs :
Il faut tout d'abord assurer que chacun des serveurs connaissent les adresses des autres serveurs MPI - vos
machines devraient donc sur le même réseau, en théorie. Il faut ensuite attribuer à chacun des serveurs une
IP statique via /etc/network/interfaces, et ensuite associer un nom de machine à chacune de ces adresses
via /etc/hosts. Il faudra ensuite soit redémarrer les machines, ou le service de networking. Alternativement,
pour ce projet j’ai déjà un RESEAU NAT avec un serveur DHCP et des adresses fixes configurées.
Dans VM virtualbox clique sur ficher>paramétrers>réseau puis cliquer sur ajouter Réseau Nat et en fin
modifier ce dernier.
5. HTCONDOR Calcul parallèle, MPI
5
Teste la connexion entre les machines du claster
6.Installation de MPICH
MPICH, anciennement connu sous le nom de MPICH2, est une implémentation portable librement
disponible de MPI, une norme de transmission de messages pour les applications à mémoire distribuée
utilisées dans le calcul parallèle.
$ sudo apt-get install mpich
Cette installation se fait sur tous les machines
6. HTCONDOR Calcul parallèle, MPI
6
7.Teste Framework MPI
Je crée un petit programme de teste ‘Helloword’
Pour compiler et exécuter le programme, je lance les commandes suivantes :
• $ mpicc -o Nom_prog Nom_prog.c
• $ mpirun -np Nbr_de-processus ./Nom_prog
Le programme s’exécute avec succès donc le MPICH est bien fonctionne
7. HTCONDOR Calcul parallèle, MPI
7
Il nous faut un utilisateur commun sur chacune des machines. Soyez sûr que cet utilisateur possède un home
directory. On ajoute l’utilisateur par la commande $ adduser nom_utilisateur
Non utilisateur : mpiuser
Password ; mpiuser
8.Le droit root sur ces machines.
Afin que le programme puisse être lancé sur les machines « slave1 » et «slave2 », il faut que celles-ci fassent
"confiance" à la machine « master » - pour cela, on a besoin de mettre en place une connection SSH sans
mot de passe depuis la machine « master » vers les machines « slave1 » et « slave2 » Déjà, il faut mettre en
place le serveur OpenSSH sur la machine « master » :
8.1. Mettre en place le Passwordless SSH :
Après cela, il faut générer les certificats et clés DSA. Ensuite, je dois copier ces clés sur chacune de nos
machines slaves, et puis connecter sur celles-ci via ssh afin de les ajouter à nos hôtes connus. Il faut faire
cette opération pour chacune des machines « slave1 et slave2 ». Attention : le champ "Passphrase" doit bien
être vide !
Pour générer les certificats et clés DSA
8. HTCONDOR Calcul parallèle, MPI
8
Copier ces clés par la commande $ ssh-copy-id mpiuser@slave1 , $ ssh-copy-id mpiuser@slave2
La connexion SSH est donc maintenant en place depuis la machine « master ».
Teste la connection SSH sans mot de passe depuis la machine « master » vers les machines « slave1 et slave 2 »
9. HTCONDOR Calcul parallèle, MPI
9
La connexion bien réussir
9.Mettre en place un partage NFS
Network File System (ou NFS), littéralement système de fichiers en réseau, est à l'origine
un protocole développé par Sun Microsystems en 19842 qui permet à un ordinateur d'accéder via un réseau à
des fichiers distants. Wikipedia
Je commence par la machine « master ». Tout d'abord, je doit mettre en place le serveur NFS sur cette
machine, et créer le dossier qui sera partagé entre les machines de notre cluster.
10. HTCONDOR Calcul parallèle, MPI
10
Ensuite, dossier il doit exporter est /home/mpiuser/condor_teste. Pour cela, nous devons ajouter une entrée
à /etc/exports, puis indiquer qu'il y a de nouveau en utilisant la commande "exportfs -a", et enfin redémarrer
le service.
Sur nos machines « slave1, slave2 », il faut tout simplement monter le partage.
11. HTCONDOR Calcul parallèle, MPI
11
La même chose pour slave2
Il faut par contre savoir que la commande mount n'est qu'une solution temporaire, car le partage s'arrêtera
au redémarrage de la machine dans ce cas. Pour une solution plus permanente, il faut éditer /etc/fstab
10. Tester notre infrastructure:
Dans notre partage, nous allons créer un petit script en C afin de pouvoir tester notre cluster.
Créer une hostfile , la liste des machines que vous utilisez dans le cluster
12. HTCONDOR Calcul parallèle, MPI
12
Compilation et exécution
Notre cluster est bien fonctionnel
11. Configuration HTCondor
On édit CONDOR_ADMIN, CONDOR_HOST, ALLOW_WRITE
12. Teste HTCONDORE dans mon cluster
Avant de pouvoir soumettre un travail à Condor, nous allons besoin d'un travail. Je crée un petit programme en c ou
bien c++.
Programme que j’ai créé nommer SommeNbr.c qui fait le calcule de 1 à 1000
13. HTCONDOR Calcul parallèle, MPI
13
Compilation et exécution de la programme SommeNbr.c
Maintenant je dois soumettre des travaux pour que condor s'exécute.
12.1. Soumettre un travail avec vanilla universe
Tout d’abord j’ai créé les bases d'un fichier de soumission de condor :
Universe: signifie le mode de soumettre un (parallel, vanilla, MPI…).
Executable: le nom de programme.
Log: C'est le nom d'un fichier où Condor va enregistrer des informations sur l'exécution de notre job.
Output: Où Condor devrait mettre la sortie standard du job.
Erreur: Où Condor devrait mettre sortie d'erreur de notre job.
Soumettre le travail je tape la commande : $ condor_submit Nom_fichier_submit
14. HTCONDOR Calcul parallèle, MPI
14
12.2. Soumettre un tarvail avec Parallel universe :
Tous d’abord je crée un fichier submit mpi_teste.submit
On va lancer le travail avec la comande condor_submit mpi_teste.submite
J’ai un problème : le programme est distribué sur cluster mais ne donne rien.