Les clusters de calculs


Architecture Logicielle


Principe

Tout comme pour le matériel, il n'existe pas de modèle de référence concernant les applications de clustering. Nous allons donc aborder seulement les notions importantes.

Il existe différentes manières de répartir des calculs sur une grappe de noeuds.
En règle général, l'architecture systéme la plus répandue est la suivante:
architecture logicielle

Le BIOS (Basic Input/Output System)  gère l'entrée et la sortie des données et les échanges avec les périphériques. Aucun cluster à l'heure actuelle ne travaille à ce niveau pour la gestion des calculs. Néanmoins le BIOS est utilisé pour accélérer les échanges réseaux entre les noeuds.

Systèmes d'exploitation

Il existe des systèmes d'exploitation dédiés au clustering. Dans ce cas, le système gère lui même les échanges réseaux. Il peut dans certains cas découper les applications afin de les répartir sur le cluster. Ces systèmes permettent de lancer des applications qui ne sont pas développés à la base pour du clustering. Néanmoins, pour une utilisation optimale, l'utilisation de librairies dédiées au clustering est recommandée.

Il existe des systèmes ou des extensions systèmes pour tous les environnements:
  • Linux-Unix :
    • Beowulf est un système conçu par la NASA permettant à partir de librairie de créer et d'utiliser des applications de calculs répartis.,
    • Mosix est un système développé par l'université de Jérusalem permettant de découper une application pour la lancer sur un cluster. Ainsi aucun développement spécifique n'est nécessaire , 
    • OpenMosix est une version open-source de Mosix
  • BSD : Mosix est le portage de Mosix sous BSD.
  • Mac OS : Xgrid est une surcouche à MacOS développé par  la Apple's Advanced Computation Group qui propose une API permettant à un groupe d'ordinateurs en réseau d'effectuer des calculs répartis. XGrid est livré par défaut depuis Tiger. 
  • Windows : Windows 2003 cluster server R2 est une extension pour windows 2003 server. Son gros défaut est que cette solution repose sur un OS peu adapté au clustering. En effet, la présence d'une interface graphique lourde ralentit considérablement les performances.
Tableau de répartition des clusters par OS

OS

Nombre

Répartition

Linux

376

75.20 %

Unix

86

17.20 %

BSD Based

3

0.60 %

Mac OS

3

0.60 %

Mixed

32

6.40 %

API

Il existe de nombreuses librairies permettant de créer des applications réparties.  Certaines sont dédiés aux communications réseaux (protocole MPI), d'autres permettent de transformer un ensemble de machines en une seule (PVM)