Archives de l'Auteur

 

[Clustering] OpenMosix - Intro

OpenMosix est un fork du projet Mosix, lequel est devenu propriétaire fin 2001.

Le projet OpenMosix a commencé le 10 février 2002 à l’initiative de Moshe Bar, dans le but de conserver une version libre de cette solution de clustering Linux. Aujourd’hui, un an après l’apparition d’OpenMosix, il ne reste quasiment plus de code de Mosix dans OpenMosix, et le projet est activement soutenu par une douzaine de développeurs, contre seulement quatre pour Mosix.

OpenMosix regroupe un patch de noyau et quelques outils permettant de mettre en place un cluster sans avoir à modifier le code source des applications. En effet, cette solution repose sur la répartition de la charge (load balancing) et non sur la parallélisation réelle des processus. Le principe est que si un nombre important de processus sont lancés sur un noeud du cluster, alors que les autres noeuds sont inactifs, openMosix va prendre la décision de migrer certains processus demandant un temps CPU important vers d’autres nœuds grâce à des algorithmes de répartition de charge. Ceci permet d’équilibrer la charge totale sur le maximum de noeuds. La migration est totalement transparente, même pour le processus.


 

[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.

Lire la suite ce cet article »