Le Grid Computing

Principes de base du grid computing

Constitution d'une grille de calcul

Une grille de calcul est toujours basée sur un principe d'échanges clients/serveurs.

Nous mettons dans ce concept des "s" sur les mots car il peut exister plusieurs clients et plusieurs serveurs.

Principe du grid computing


Un grille de calcul est alors composée de deux entités:
  • un ou plusieurs serveurs,
  • un ou plusieurs clients.

  • Les serveurs fournissent des tâches à réaliser ou des données à traiter aux clients. Ils servent alors d'ordonnanceurs afin d'organiser le traitement et recomposent les résultats. L'aggrégation des retours des clients permettent la création d'un résultat final.
    Les clients, proposent leur puissance de calcul ou de stockage à la grille afin de créer une sorte de supercalculateur.

    En général, on retrouve des environnements hétérogènes:
    Ainsi, et contrairement au calcul parallélisé sur un cluster, les clients peuvent se retrouver avec des systèmes d'exploitation différents. Ils peuvent être aussi physiquement différents (Serveurs, clusters, PDA, calculatrices, bref, tout ce qui a une puce de calcul et qui peut accéder à un réseau).

    Le principe du grid computing consiste en sa capacité à gérer des machines qui ne se trouvent pas dans un même lieu. Ces derniers peuvent très bien se trouver à des endroits différents, avec des connexions au réseau complètement différentes (par Internet, réseau local, VPN...).


    Avantages

    Evidemment, un tel système présente des avantages majeurs par rapport à d'autres technologies comme le clustering.

  • Tout d'abord, le calcul en grille permet le travail parallélisé de plusieurs machines sur un même problème. Les clients proposent leur puissance de travail sur des tâches que le serveur leur a confié. Ces tâches sont indépendantes entre elles, ce qui a pour intérêt d'individualiser le traitement des données, tout en évitant les communications inutiles entre machines.
  • Les clients participant à la grille de calcul peuvent se situer dans des environnements complètement différents. En effet, il n'est pas nécessaire de posséder le même système d'exploitation, la même puissance de calcul, la même connexion au réseau...
  • Les clients ne sont pas forcément obligés d'être tout le temps connectés au serveur. En effet, le grid computing n'a pas pour obligation d'assurer une qualité de service entre les clients et les serveurs, contrairement aux clusters, qui a besoin, en temps réel, de partager le travail entre les machines.
  • Enfin, le principe d'externaliser/délocaliser la puissance de calcul permet de profiter d'une puissance de calcul exceptionnelle, tout en évitant les contraintes de place, de climatisation et donc d'énergie pour un centre de recherche.
  • Inconvénients

    Bien évidemment, il ne peut y avoir que des avantages. Il existe aussi des inconvénients qui peuvent faire pencher la balance dans le choix de la méthode à utiliser.

  • Tout d'abord, les clients ne possédent pas une administration centralisée. En effet, ces derniers possèdent chacun des administrateurs qui sont indépendants de l'organisation qui fournit les données de calcul.
    Cela a pour conséquence de ne pas pouvoir contrôler l'ensemble des machines de son réseau de calcul.
    On est donc containt à ne pas pouvoir contrôler l'intégrité des résultats des traitements. En effet, on pourrait imaginer un client qui retourne des résultats erronés. Cela nécessite donc de lancer en redondance le même calcul sur plusieurs machines indépendantes entre elles, afin d'interpoler et confondre les résultats.
  • Un des gros problèmes de ce système est l'impossibilité de prévoir à l'avance les ressources réelles qui seront présentes et disponibles à un instant T. On ne peut donc savoir exactement combien de temps une série de calculs va prendre.
  • Enfin, le grid computing comporte une certaine lenteur d'accès, de par les types de connexion aléatoires au système. Ceci engendre le très mauvais temps de réaction entre le début d'un calcul et sa fin.