PRATIQUE OUTILS 
Expliquez-moi... Le fonctionnement d'un système de grille
 
La grille de calcul, c'est l'idée de diviser le temps nécessaire pour parvenir à un résultat en mutualisant les ressources de très nombreuses machines. Comment cela fonctionne-t-il ? (06/01/2006)
  Forum

Réagissez dans les forums de JDN Développeurs

Une grille de calcul (grid computing), couramment appelée "grille" (grid), est une application spécifique du principe du calcul partagé (on dit également distribué ou réparti, en anglais distributed computing). Ce dernier correspond à la coordination d'ordinateurs physiquement distants, afin de partager leurs ressources de manière transparente.

Une grille se distingue par son utilisation de poste hétérogènes : capacités, systèmes et langages peuvent varier du tout au tout. Les postes peu utilisés sont à même d'apporter toute leur puissance de calcul, tandis que les postes déjà soumis à une utilisation ne partageront que les ressources dont ils disposent.

Par ailleurs, la redondance permet de disposer constamment de ressources, mais également de pouvoir déporter les traitements sur les machines disponibles. C'est le même principe qui est appliqué au Web lui-même (si un serveur tombe, le réseau reste en place), le partage en peer-to-peer, ou les réseaux électriques.

Le partage se réalise au travers d'un réseau, le plus souvent Internet. C'est le projet SETI@Home, initié en 1999, qui en a été l'un des pionniers, les domaines de calculs s'étant depuis étendus à la médecine ou au cassage de clef de sécurité. Le temps de calcul nécessaire pour parvenir à un résultat est divisé par chaque nouvel ordinateur inclus dans la grille, à échelle variable.

Les applications de grille peuvent fonctionner selon plusieurs modèles, côté client. Le premier et plus courant consiste à installer sur un poste un programme qui gère à la fois le calcul et le transfert des données (brutes et résultantes) avec le serveur central. Un second modèle, plus facile à étendre et modifier, ne présente qu'un moyen d'échange de fichiers en entrée et sortie, les fichiers téléchargés contenant à la fois les données à traiter et l'outil de calcul.

Côté serveur, le logiciel de gestion doit être en mesure de découper les données en blocs significatifs, de les envoyer/recevoir depuis un grand nombre d'ordinateurs, de vérifier les données traitées et de distinguer les résultats probants pour étude complémentaire.

Un problème est donc divisé en fichiers de données, suffisamment légers pour être transférés sans gêne sur une petite connexion. Chaque fichier est traité de manière indépendante par les postes distants qui le reçoivent, et le résultat est renvoyé au serveur central. Ce dernier est une application middleware, véritable cerveau du réseau formé par la grille, envoyant les ordres aux postes connectés.

Son rôle principal est donc d'automatiser les négociations entre machines, et de gérer les ressources disponibles (mémoires, disques, processeurs, bande passante...). Le tout forme une organisation virtuelle, où les échanges sont dûment contrôlés, tant les accès directs aux machines que les données renvoyées par celles-ci.

Par la nécessité d'utiliser des systèmes très hétérogènes de la même manière, une grille repose fondamentalement sur un petit nombre de standards établis, à commencer par les protocoles HTTP et TCP/IP. Les services Web d'aujourd'hui s'ajoutent également à ces standards dans certains cas.

Les méthodes de communication entre machines (transport, routage, nommage) sont donc connues et prises en charge d'emblée. Cependant, les disparités de fonctionnement entre les différents systèmes de grille les rendent dans la plupart des cas non interopérables. Ce sera probablement l'un des chantiers des années à venir, afin de favoriser l'avancée de la grille.
 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page