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