Gestion des données dans les grilles de calcul

L’Homme a soif de connaître son avenir et de comprendre ce qui l’entoure. À cette fin, de nombreux instruments de mesure ont été inventés. Actuellement, ces instruments devenus très précis génèrent de grandes quantités de données. Pour mieux appréhenderle monde qui l’entoure, l’Homme utilise ces données pour modéliser son environnement. En analysant les modèles et en simulant leur évolution, il devient possible de comprendre des phénomènes et systèmes complexes ou d’en inventer de nouveaux, et même de prévoir leurs possibles évolutions. Cependant, les instruments de mesure, très précis, peuvent générer quotidiennement de grandes masses de données. Les modèles deviennent également de plus en plus complexes et prennent en compte un nombre de paramètres sans cesse grandissant. Simuler l’évolution de tels modèles demande donc une puissance de calcul et de stockage de plus en plus grande. Par exemple, en Californie, dans le cadre du projet TeraShake [127], la simulation de tremblements de terre servant à prévoir les conséquences de secousses dans cette région doit prendre en compte une masse considérable d’informations sur la topologie et la structure des terrains ainsi que sur les forces physiques entrant en jeu. Ce genre de simulation manipule de gigantesques quantités de données : au sein du projet TeraShake, les simulations prennent en entrée des centaines de gigaoctets et génèrent des résultats de l’ordre de plusieurs dizaines de téraoctets. Les chercheurs ont donc besoin d’un instrument pouvant stocker et exploiter une masse d’information considérable.

Face à cette demande croissante de puissance, les grilles de calcul apparaissent de plus en plus comme la solution de demain. En effet, ces architectures permettent d’additionner les ressources matérielles pour former un ensemble offrant une capacité de stockage et de calcul virtuellement infinie. Cependant une grille de calcul est un instrument particulièrement complexe car il est composé de milliers de machines souvent hétérogènes et réparties géographiquement dans des institutions qui mettent en commun leurs ressources. De plus, de nouvelles ressources peuvent être ajoutées à tout moment, de même que des ressources présentes peuvent disparaître (pannes, arrêts volontaires). Par conséquent, les concepteurs d’application s’appuient sur des services logiciels permettant de simplifier l’exploitation des grilles de calcul, d’abstraire une partie de cette complexité et de masquer partiellement l’hétérogénéité des ressources utilisées.

Les dix dernières années ont ainsi vu naître des services dédiés à certains de ces aspects. Il existe notamment des services permettant de déployer des applications sur une grille, de rechercher des ressources disponibles (matérielles ou logicielles), etc. Pourtant la conception d’applications distribuées pour les grilles de calcul reste complexe. En effet, le partage de données reste un problème difficile : si les applications sont distribuées, c’est également le cas des données auxquelles elles accèdent. Celles-ci se trouvent souvent répliquées sur plusieurs machines et le concepteur d’application doit prendre en compte ces multiples copies : il doit pouvoir les localiser, les transférer et maintenir leur cohérence alors que de multiples processus répartis dans la grille sont susceptibles de les modifier. Cette tâche est d’autant plus dure si l’on considère que les fautes et déconnexions de machines sont courantes dans les grilles de calcul et qu’elles peuvent entraîner une perte de données : si toutes les machines qui stockent une même donnée tombent en panne ou se déconnectent, la donnée n’est plus accessible.

Les données dans les grilles de calcul 

Les grilles de calcul sont de plus en plus utilisées, aussi bien dans le monde de la recherche que dans celui de l’industrie. Il s’agit en effet d’un instrument puissant, permettant de traiter des problèmes difficiles faisant appel à de nombreuses données de taille importante. Cependant, la conception d’applications pour ce type de système est complexe. Les applications sont composées de processus distribués géographiquement s’exécutant sur les nœuds appartenant aux grilles. Lors de l’exécution d’une application distribuée, les processus qui la composent coopèrent notamment en partageant des données. Nous allons montrer que la gestion des données partagées entre plusieurs processus au sein d’une grille de calcul représente un facteur limitant dans la conception d’applications pour la grille. Les données partagées doivent en effet pouvoir être localisées, transférées et modifiées de manière concurrente par de multiples processus. Cette tâche est d’autant plus complexe que les nœuds d’une grille de calcul peuvent tomber en panne ou se déconnecter.

Les grilles de calcul 

Historique et définition

Le mot “grille” vient de l’anglais grid qui a été choisi par analogie avec le système de distribution d’électricité américain (electric power grid), ce terme été répandu en 1998 par l’ouvrage de Ian Foster et Carl Kesselman [70]. En effet, une grille peut être vue comme un instrument qui fournit de la puissance de calcul et/ou de la capacité de stockage de la même manière que le réseau électrique fournit de la puissance électrique. La vision des inventeurs de ce terme est qu’il sera possible, à terme, de se “brancher” sur une grille informatique pour obtenir de la puissance de calcul et/ou de stockage de données sans savoir ni où ni comment cette puissance est fournie, à l’image de ce qui se passe pour l’électricité.

L’analogie avec le système de distribution d’électricité permet de cerner la vision d’une grille d’un point de vue utilisateur. Notre travail se situe au sein même des grilles, nous avons donc besoin de définir comment cette puissance est fournie.

Définition 2.1 : site — Un site est un ensemble de ressources informatiques localisées géographiquement dans une même organisation (campus universitaire, centre de calcul, entreprise ou chez un individu) et qui forment un domaine d’administration autonome, uniforme et coordonné.

Les ressources informatiques sont aussi bien des liens réseau (câbles, routeurs ou switchs) des machines (simples PC ou calculateurs parallèles) ou des éléments logiciels. Nous pouvons maintenant définir une grille informatique.

Définition 2.2 : grille informatique — Une grille informatique mutualise un ensemble de ressources informatiques géographiquement distribuées dans différents sites.

Il est important de noter que les grilles informatiques sont, par nature, dynamiques:

1) les sites peuvent quitter ou rejoindre la grille à tout moment ;

2) de même, au sein de chaque site, de nouvelles ressources peuvent être ajoutées, d’autres peuvent tomber en panne ou être déconnectées. Il existe différents types de grille informatique. On distingue notamment les grilles de données et les grilles de calcul.

Les grilles de données (data grid) sont principalement utilisées pour le stockage de grandes masses de données. Elles sont généralement composées de ressources offrant une grande capacité de stockage, en mémoire et sur disque.

Les grilles de calcul (computational grid) sont dédiées aux calculs intensifs. Une grande importance est alors donnée à la puissance des processeurs des nœuds qui la composent.

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela chatpfe.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

1 Introduction
1.1 Objectifs de la thèse
1.2 Contributions et publications
1.3 Organisation du manuscrit
2 Les données dans les grilles de calcul
2.1 Les grilles de calcul
2.1.1 Historique et définition
2.1.2 Les fédérations de grappes
2.1.3 Un exemple de grille : Grid’5000
2.2 Les applications de couplage de codes
2.2.1 Description
2.2.2 Exemple d’application
2.2.3 Les grilles de calcul : une solution pour les applications de couplage de codes
2.3 Approches pour le partage de données dans les grilles
2.3.1 Le partage de données dans les grilles de calcul
2.3.2 Systèmes existants
2.3.3 Limites
2.4 Problèmes induits par la dynamicité de la grille
2.5 Tolérance aux fautes et gestion de la cohérence dans les grilles
3 Approches pour la gestion de la tolérance aux fautes
3.1 Notion de faute
3.1.1 Défaillances, erreurs et fautes
3.1.2 Types de défaillance
3.1.3 Quel modèle de fautes pour les grilles de calcul ?
3.1.4 Comment faire face aux fautes ?
3.2 Détection de défaillances
3.2.1 Principes généraux
3.2.2 Classification des détecteurs de défaillances
3.2.3 Mise en œuvre de détecteurs de défaillances
3.2.4 Passage à l’échelle
3.3 Techniques de réplication
3.3.1 Gestion des groupes de copies
3.3.2 Propagation des mises à jour
3.3.3 Utilisation de groupes de copies
3.4 Sauvegarde de points de reprise
3.4.1 Principe de base
3.4.2 Points de reprise coordonnés
3.4.3 Points de reprise non-coordonnés
3.5 Tolérance aux fautes dans les grilles : vers une approche hiérarchique
4 Approches pour la gestion de la cohérence de données
4.1 Modèles et protocoles de cohérence dans les systèmes à mémoire virtuellement partagée
4.1.1 Notion de cohérence
4.1.2 Modèles de cohérence forte
4.1.3 Modèles de cohérence relâchée
4.1.4 Approches pour la localisation des données
4.2 Modèles et protocoles de cohérence dans les systèmes pair-à-pair
4.2.1 Les systèmes pair-à-pair
4.2.2 Approches pour la localisation des données
4.2.3 Cohérence des données dans les systèmes pair-à-pair
4.3 Modèles et protocoles de cohérence dans les bases de données
4.3.1 Particularité des données
4.3.2 Notion de transaction
4.3.3 Cohérence de données répliquées : divergence et réconciliation
4.4 Cohérence de données dans les grilles : vers une approche hiérarchique
Conclusion

Lire le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *