[Clustering] Introduction
Le sujet de notre projet de fin d’étude était : “Etude de solutions de clustering pour le LIA (Laboratoire Informatique d’Avignon)“.
En effet, une équipe de chercheurs du LIA travaille sur la reconnaissance de la parole. Certaines de leurs applications, comme SPEERAL, demande beaucoup de temps et prennent aussi une part importante de la charge processeur.
D’un autre côté, le LIA possède plusieurs machines fonctionnant sous Linux Debian, et les chercheurs voudraient pouvoir jouir de la puissance de ces machines et le plus facilement possible.
La technologie cluster semble être une solution à ce cahier des charges. En effet, le principe utilisé dans le clustering consiste à diminuer le temps d’exécution d’une tâche en la fractionnant sur plusieurs machines. En clair, une tâche répartie sur N machine arrivera (idéalement) N fois plus vite à terme que sur une seule.
Après une rapide étude bibliographique, nous avons choisi d’étudier trois solutions caractéristiques de types de cluster :
- openMosix de type load-balancing
- PVM qui nécessite un code parallélisé selon la librairie PVM (Parallel Virtual Machine)
- Beowulf / Mpich basé sur une autre librairie : MPI (Message Passing Interface)
La mise en œuvre de ces solutions s’est effectuée sur nos trois propres pc. Cependant, vous trouverez en annexe les moyens qui nous ont permis de réaliser un cluster et de nous placer dans un environnement semblable à celui du LIA.
Nous montrerons la démarche pas à pas pour installer et évaluer chacune de ces solutions. Celles-ci ont été évaluées aussi bien par rapport à leurs performances que par rapport à leurs facilités d’utilisation et d’administration.
Avant de nous lancer dans l’expérimentation, nous avons cherché à connaître les différentes solutions de clustering existantes. Il existe vraiment beaucoup de solutions de clustering sous Linux. On peut citer par exemple :
- OpenMosix
- PVM
- MPI
- LVS
- Linux-HA
- Ultra Monkey
- …
Nos critères pour sélectionner les solutions ont été les suivants :
- libre, gratuite
- destinée à fonctionner dans un environnement GNU/Linux
- la solution doit être reconnue, éprouvée
Nous avons finalement sélectionné 3 solutions :
- OpenMosix : Il s’agit d’un système en clustering. Son fonctionnement est similaire à celui d’une architecture SMP. Ce projet date de 1997, et a déjà beaucoup été utilisé. Aucune modification du code n’est nécessaire, mais ce cluster n’est intéressant que s’il y a beaucoup de processus.
- MPICH : Cette solution repose sur une architecture Beowulf. Le premier cluster Beowulf a été réalisé par la NASA en 1994. Il s’agit là aussi d’une solution éprouvée, et reconnue pour ses performances. MPICH nécessite cependant que l’application pour laquelle le cluster est destiné doit être parallélisée en utilisant la librairie MPI.
- PVM (Parallelized Virtual Machine) : Cette solution est semblable à MPICH, mais en utilisant une autre librairie de parallélisation, elle aussi très utilisée : pvmlib.
Si vous avez apprécié cet article, s'il vous plait, prenez le temps de laisser un commentaire ou de souscrire au flux afin de recevoir les futurs articles directement dans votre lecteur de flux.

Commentaires
Pas encore de commentaire.
Laisser un commentaire