Clustering dernière partie
Présentation des méthodes de clustering
Software (suite):
3.3 Les librairiesLà où OpenMosix est une implémentation kernel permettant la migration des processus, il existe diverses librairies qui nous offrent un modèle de programmation pour le calcul parallèle, toutes venant du monde GNU.
Si OpenMosix ne permet pas d'améliorer le temps d'exécution d'une application construite pour échanger de multiples données entre les processus, on aura avantage à utiliser PVM ou MPI. Celles-ci mettent à disposition des mécanismes de passage de messages. Il est bien entendu évident que le code à exécuter n'est pas présent sur le noeud client, il est donc primordial de diffuser ces sources vers les noeuds concernés afin que ceux-ci le recompilent en fonction de leur architecture (système, processeurs, ...) et l'exécutent.
Il est en outre possible d'utiliser ces librairies et OpenMosix au sein d'un même cluster ainsi qu'avec un superviseur type z/VM. Ces systèmes sont d'un usage particulièrement souple et les inconvéniants des uns sont compensés parles avantages des autres.
3.3.1 PVM "Parallel Virtual Machine"[14]
Cette librairie est la plus ancienne du monde GNU. Sous licence GPL, elle est portable et permet donc de partager des applications sur un réseau hétérogène de machines.
La communication entre les noeuds, de type client-serveur, se fait par protocole TCP, ce qui permet à ce type de cluster de fonctionner sur des réseaux hétérogènes.
Il faut retenir de cette librairie qu'elle est particulièrement compliquée à mettre en oeuvre, c'est pourquoi on lui préfère, en général, la librairie MPI.
3.3.2 MPI "Message Passing Interface" [15]
Plus complète que la PVM, elle a un avantage non négligeable sur les autres : elle est normée et standardisée. Elle reste compatible avec des systèmes d'exploitation différents. Cette librairie est beaucoup plus simple d'utilisation que PVM et ajoute quelques fonctionnalités comme:
- les synchronisations entre groupes
- les communications asynchrones
- des fonctions qui permettent d'extraire des informations sur la programmation du cluster
Cette librairie sont utilisées via différentes implémentations: LAM, MPICH ou AFMPI, qui fournissent différents type de service comme la communication, la distribution du code ou la compilation.
3.3.2 AFAPI "Aggregate Function API" [16]
Cette librairie est très différente des autres. Elle travaille d'une manière très rapprochée du hardware de façon à diminuer les temps de réponses. Elle a pour but de concurrencer les calculateurs industriels. Elle est construite sur une librairie bas niveau nommée PAPERS (Purdue's Adapter for Parallel Execution and Rapid Synchronisation). Cette norme a été standardisée ce qui rend AFAPI portable sur différents systèmes.
Pour être plus rapide à l'exécution, elle utilise des broadcasts Ethernet et outrepasse les appels systèmes en accédant directement au périphérique.