Académique Documents
Professionnel Documents
Culture Documents
Encadré par :
Pr. Chaker EL AMRANI
Réalisé par :
TALBI Ibrahim
Table des matières
1. Introduction : ......................................................................................................................................... 3
2. Prérequis : ............................................................................................................................................. 3
3. Configuration initiale de réseau : .......................................................................................................... 3
4. Installation de HTcondor : ..................................................................................................................... 8
5. Configuration l’authentification SSH : ................................................................................................. 13
6. Configuration de partage NFS : ........................................................................................................... 17
7. Tester l’infrastructure de notre cluster : ............................................................................................. 20
8. Soumission de jobs : ............................................................................................................................ 20
9. Conclusion : ......................................................................................................................................... 25
1. Introduction :
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 composé de
trois machines, une machine Master et deux machines slaves.
2. Prérequis :
Avant tous, j’ai créé trois machines virtuelles, une machine Ubuntu 18.04 avec une interface
graphique et deux machines slaves Ubuntu Server 20.04.
Ensuite j’ai créé un réseau NAT nommé « Cluster », les trois machines sont connectés depuis ce réseau.
Maintenant que toutes les machines sont toujours connectés au même réseau, les adresses IP sont fixes.
Il faut assurer que chacun de nom machines connaissent les autres, pour cela on va associer un nom à
chaque adresse via le fichier /etc/hosts et puis on va redémarrer les service de réseau , dans la suite de
ce projet, on pourra connecter juste par le nom associé à l’adresse de machine.
4. Installation de HTcondor :
HTcondor tourne sur les systèmes Linux, Unix, Mac OS X, FreeBSD, et sur les systèmes Windows
actuels. Condor peut aisément faire collaborer des ressources dédiées (grappes de calculateurs en
batterie) et des postes de travail non dédiés (grille informatique) en un seul environnement de calcul
intégré.
On constate que le cluster est composé d’une machine Master et deux machine Slaves.
L’architecture de notre cluster est bien réalisé par la configuration qu’on a fait.
Résultat condor_status
Avant tester le cluster par la soumission des tâches, il reste quelques configuration à faire :
• Générer un clés SSH, pour la communication entre les machines sans demander le mot de passe.
• Configuration de NFS, pour la partage des fichiers.
Secure Shell, ou SSH, est un protocole réseau normalement utilisé pour connecter un utilisateur à un
système distant sur un réseau non sécurisé
L’authentification des clés SSH commence par la création d’une paire de clés. Comme l’authentification
par SSH est asymétrique, une paire de clés asymétriques est créée dans les deux machines en
communication. Le cryptage asymétrique utilise une paire de clés composée d’une clé publique et d’une
clé privée. La clé publique donne à l’utilisateur (ou bien la machine dans notre cas ) l’accès au système de
fichiers distant.
Pour Cela il faut générer une paire de clés entre toutes les machines à fin rendre la communication plus
sécurisé et pour que les machines fassent confiance entre eux, déjà il faut mettre en place le serveur
OpenSSH sur les trois machines.
Générer les certificats et clés RSA au niveau machine Master, par la commande suivante :
Ensuite, il faut copier les clés générés vers les machines slaves par la commande suivnate :
$ ssh-copy-id ibrahim@slave1
$ ssh-copy-id ibrahim@slave2
Copier la clé vers Slave1
Après cette configuration, désormais, la connexion SSH se fait sans mot de passe entre les machines de
cluster.
Connexion SSH sans mot de passe
Remarque : La configuration précédente se répète pour les deux machine slaves (Slave1, Slaevz2)
Network File System (NFS), ou système de fichiers en réseau, est une application client/serveur qui
permet à un utilisateur de consulter et, éventuellement, de stocker et de mettre à jour des fichiers sur
un ordinateur distant, comme s'ils étaient sur son propre ordinateur.
Dans notre cas, le NFS est important lors de soumission des tâches, pour que les machines puissent
accéder à des fichiers nécessaires pour terminer l’exécution des tâches.
➢ Tout d’abord, il faut mettre en place le serveur NFS sur la machine Master, on lançant la
commande suivante :
$ mkdir /mnt/jobs
➢ Puisque nous voulons que toutes les machines slaves puissent accéder au répertoire partagé, il
faut supprimer toute restriction dans les autorisations du répertoire.
➢ Les autorisations d'accès au serveur NFS sont définies dans le fichier /etc/exports :
Configuration /etc/exports
➢ Après avoir accordé l'accès aux slaves, il faut exporter le répertoire de partage NFS jobs, puis
redémarrer le serveur NFS kernel pour que les changements prennent effet.
$ sudo exportfs -a
➢ Ensuite, il faut créer la dossier lequel on montrera le partage nfs du serveur NFS. Pour ce faire,
exécutez la commande :
➢ La dernière étape restante est le montage du partage NFS qui est partagé par le serveur NFS.
Cela permettra au système client d'accéder au répertoire partagé jobs.
Mais avant, il faut que installer MPICH sur nos machines pour qu’on puisse faire des tests avec les
notions de parallélisme.
8. Soumission de jobs :
Maintenant qu’on est terminé toutes les configurations nécessaires, on peut tester notre cluster par la
soumission des jobs depuis la machine Master aux machines salves.
8.1. Création et Configuration d’un job:
8.1.1. Serial :
➢ Tout d’abord, il faut créer un fichier de soumission de Condor :
Le programme Serial
La soumission du job se fait par la commande suivante :
$ condor_submit serial.jdl
Soumission du job
Depuis le fichier log, on constate que le job est exécuté par la machine d’adresse IP 10.0.2.15 c’est-à-dire
par Slave2, il y a autres informations tels que : Cpu, Mémoire, Disk, le temps d’exécution …
➢ On modifiant la valeur de queue à 2, le programme s’exentéra sur les deux machines slaves :
8.1.2. Parallèle :
Par la même façon, sauf de quelques modification sur le fichier de soumission du job, :
$ condor_submit paralleljob.jdl
Depuis le fichier log, on constate que le job est bien distribué (à slave1 : 10.0.2.4), mais output de
programme ne donne rien.
9. Conclusion :
Les mécanismes des travaux parallèles sont plus complexes que les mécanismes nécessaires pour les
travaux séquentiels. La raison en est qu'un certain nombre d'opérations doivent être gérées par
HTCondor : les communications SSH entre les noeuds, les transferts de fichiers, l'exécution du travail
dans les noeuds conçus et plus encore. Par conséquent, le checkpointing ne fonctionnera pas pour les
travaux de l'univers parallèle et la suspension des travaux peut causer des problèmes : c'est pourquoi les
travaux de l'univers parallèle doivent être exécutés dans des ressources dédiées, où les politiques qui
incluent la suspension des travaux doivent être désactivées.