Welcome to LEGO

Acronym
LEGO means League for Efficient Grid Operation. It's a tribute to LEGO concept because five teams work together to combine many bricks to design new solutions for Grid operation.
Reference
ANR-CICG05-11
Description
The aim of this french project is to provide algorithmic and software solutions for large scale architectures; our focus is on performance issues. The software component provides a flexible programming model where resource management issues and performance optimizations are handled by the implementation. On the other hand, current component technology does not provide adequate data management facilities, needed for large data in widely distributed platforms, and does not deal efficiently with dynamic behaviors. We choose three applications ocean-atmosphere numerical simulation, cosmology simulation, and sparse matrix solver. We propose to study the following topics: Parallel software component programming; Data sharing model; Network-based data migration solution; Co-scheduling of CPU, data movement and I/O bandwidth; High-perf. network support. The Grid'5000 platform provides the ideal environment for testing and validation of our approaches.

Contact

Adresse
Eddy Caron
Laboratoire de l'Informatique du Parallélisme
École Normale Supérieure de Lyon
46 Allée d'Italie
69364 Lyon Cedex 07. France

Phone Office 307
Office : +33 4 72 72 84 96
Fax : +33 4 72 72 80 80

Contexte et motivation du projet

Les grilles informatiques ont connu ces dernières années - et connaissent encore - une forte activité : d'idée, elles sont devenues réalité. Par exemple, Teragrid aux Etats-Unis ainsi que Grid'5000 en France réunissent chacun plusieurs milliers de processeurs et disposent d'un réseau dédié en gigabits (40 Gb/s pour TeraGrid, 1 Gb/s et bientôt 10 Gb/s pour Grid'5000). Ainsi l'infrastructure matérielle des grilles est en place. Il n'en va pas de même pour les applications : peu d'applications arrivent à exploiter ces ressources. La plupart des applications sont en réalité des codes parallèles qui ne s'exécutent que sur un noeud de la grille, c'est-à-dire une machine parallèle.

De nombreux modèles de programmation ont été proposés pour tenter de maîtriser la complexité de programmation pour une application, afin d'exploiter simultanément plusieurs noeuds d'une grille. Cependant, la plupart d'entre eux se contentent d'étendre un paradigme de programmation existant, comme par exemple les implémentations grid-aware de MPI (MPICH-G2, MagPie, ...), l'appel de fonction à distance (GridRPC), l'appel de service (Web Services), les workflows (GridAnt, DAGMan, GRMS, ...), le paradigme maître-travailleur (BOINC, XtremWeb, ...), le partage de collections de données non modifiables via des catalogues (DPOSS, NVO, GAMESS, BIRN, ...), le partage de données modifiables via un accès transparent vis-à vis de la localisation (JuxMem), et enfin les modèles de composant (CCA, ASSIST, ICENI, ...).

Cependant, une application exhibe très fréquemment le besoin d'utiliser plusieurs paradigmes de programmation. Par exemple, une application de couplage de codes en hydrologie du projet ACI GRID HydroGrid met en évidence des parties de codes adaptées à MPI alors qu'une autre partie demanderait à être programmée selon un paradigme maître-travailleur. Si nous ajoutons des considérations de stockage et de visualisation des données produites, un paradigme de partage de données persistantes s'avère très utile. Enfin, pour maîtriser la complexité de l'application ainsi que son déploiement, un modèle de programmation à base de composants s'avère quasiment indispensable.

L'objectif de LEGO est de mettre en oeuvre et de valider un modèle de programmation multi-paradigmes pour les grilles de calcul, qui intègre les avancées majeures en recherche de ces dernières années, afin de permettre simplement la création d'applications qui exploitent efficacement les grilles. Il s'agit d'offrir les grandes capacités de calcul et de stockage des grilles aux applications en remontant le niveau d'abstraction de la programmation des grilles. Le projet LEGO se propose de remplir cet objectif en offrant un modèle intégré supportant les caractéristiques suivantes :

  • l'intégration d'un modèle de composant avec un modèle d'accès transparent aux données ;
  • l'ajout de dynamicité dans les modèles de composant, en particulier via le paradigme maître-travailleur et les modèles de workflow
  • l'intégration de composants patrimoniaux en maximisant l'exploitation des spécificités de LEGO sans modifications lourdes ;
  • un ordonnancement et un déploiement efficace des composants et des données sur les ressources pour des applications statiques et dynamiques ;
  • un support des interfaces de communication travaillant au niveau des flux de communication des applications multi-paradigmes ainsi que l'optimisation dynamique de la transmission des messages.

    Les technologies inhérentes à ces caractéristiques existent, à des degrés divers de maturité, mais leurs interactions et leur mise en oeuvre collaborative est un réel défi que ce projet souhaite relever. Le verrou majeur que nous visons consiste à unifier ces axes de recherches qui ont été forts prolifiques mais menés de manière assez cloisonnée ces dernières années.

    La levée de ce verrou constituerait une innovation majeure dans la simplification, la transparence et les possibilités de programmation des grilles. LEGO vise à valider ces propositions sur la plate-forme Grid'5000 au travers de trois applications de calculs intensifs de trois domaines différents : expertise en calcul matriciel, simulation météorologique et simulation astronomique. La diffusion des résultats de LEGO s'appuiera sur ces trois applications, offrant une nouvelle dimension à ces applications qui bénéficient déjà toutes d'une certaine renommée pour leur communauté respective. Les retombées seront donc immédiates.