Rapport d’activité Mathieu Souchaud Juin 2007
Ce document fait la synthèse des réalisations accomplies durant les sept premiers mois de ma mission (de novembre 2006 à juin 2007) au sein de l’équipe ScAlApplix en tant qu’Ingénieur associé.
Table des matières 1
Introduction 1.1 Présentation de la mission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 EPSN, un Environnement pour le Pilotage de Simulations Numériques . . . . . . . . . . . . . . .
2 2 2
2
Travaux effectués 2.1 Test de mise à l’échelle de la plate-forme EPSN (2 mois) . . . . . 2.2 Amélioration du Collective CORBA Object Workspace (4 mois) . 2.2.1 Présentation de ColCOWS . . . . . . . . . . . . . . . . . 2.2.2 Stabilisation du programme . . . . . . . . . . . . . . . . 2.2.3 Communications hiérarchiques . . . . . . . . . . . . . . . 2.3 Intégration de PadicoTM dans EPSN . . . . . . . . . . . . . . . . 2.3.1 PadicoTM, une plate-forme de communication pour grille 2.3.2 ColCOWS / PadicoTM (1 mois) . . . . . . . . . . . . . . 2.4 Autre activité : administration de la grappe de visualisation . . . .
2 2 3 3 3 5 6 6 7 7
3
Bilan
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
7
1
1 1.1
Introduction Présentation de la mission
Le projet ScAlApplix a développé la plate-forme EPSN [3] de «computational steering» qui permet le pilotage à distance et l’interaction avec des applications parallèles, et ce depuis des clients de visualisation séquentiels ou parallèles. L’objectif est tout d’abord de mener à bien la validation de la plate-forme sur des applications manipulant des données de grandes tailles (par exemple plusieurs millions de particules ce qui représentera plusieurs dizaines de Gigaoctets de données) et sur un nombre important de noeuds de calcul (plus de 100 noeuds). Le second objectif est d’intégrer PadicoTM (une plate-forme de communication développé dans le projet RUNTIME) dans EPSN afin d’utiliser au mieux l’infrastructure de la grille. En particulier, cela permettra à EPSN d’utiliser de manière transparente les réseaux hautes performances d’une grappe de calcul.
1.2
EPSN, un Environnement pour le Pilotage de Simulations Numériques
EPSN est une bibliothèque pour le pilotage de simulations numériques parallèles et la visualisation en ligne des résultats intermédiaires de ces simulations (figure 1). Plus précisément, EPSN permet de piloter des codes de simulations parallèles respectant un modèle de programmation SPMD et utilisant un processus de calcul itératif, comme par exemple les schémas de résolution en temps.
11 00 00 11 00 11 00 11 00 11
11 00 00 11 00 11 00 11 00 11
00 11 11 00 00 11 00 11 00 11
11111 00000 0 1 00000 11111 00000 11111 0 1 0 1 00000 11111 00000 11111 00000 11111 0 1 0 1 0 1 0 1 00000 11111 00000 11111 00000 0 1 0 1 0 11111 1 0 1 0000 1111 00000 11111 00000 11111 0 1 0 1 0 1 0 1 0000 1111 0000 1111 00000 11111 0 1 0 1 0 1 0 1 0000 1111 0000 1111 0000 1111 0 1 0 1 1 0 0 1 0000 1111 0000 1111 0000 1111 0000 1111 0 1 0 1 0 1 0 1 0000 1111 0000 1111 0000 1111 1 0 0 1 0 1 0 1 0000 1111 0000 1111 0 1 1 0 1 0 0 1 0000 1111 1 0 0 1 0 1 0 1 00000 11111 0 1 1 0 0 1 0 1 00000 11111 0 1 1 0 0 1 0 1 00000 11111 00000 11111 00000 11111 0 1 0 1 0 1 0 1 00000 11111 00000 11111 00000 11111 0 1 0 1 1 0 0 1 00000 11111 00000 11111 00000 11111 00000 11111 1 0 0 1 0 11111 1 0 1 00000 11111 00000 11111 00000 11111 00000 0 1 1 0 0 1 0 1 00000 11111 00000 11111 00000 11111 00000 11111 0 1 1 0 0 1 0 1 00000 11111 00000 11111 00000 11111 0 1 0 00000 1 0 1 00000 11111 00000 11111 1 0 11111 0 1 00000 11111 0 1 00000 11111
11 00 00 11 00 11 00 11 00 11
Cluster de PCs graphiques
Simulation parallèle pilotable
Infrastructure EPSN Visualisation en ligne sur un mur d’images
(LAN/VLAN/WAN)
Client de pilotage léger
F IG . 1 – Vue d’ensemble de la plate-forme EPSN.
2 2.1
Travaux effectués Test de mise à l’échelle de la plate-forme EPSN (2 mois)
Les premiers tests ont révélé une instabilité de la plate-forme EPSN lors d’une utilisation avec un nombre supérieur à 40 noeuds. Les simulations actuelles demandent une puissance de calcul importante : des grappes de plusieurs centaines de noeuds sont couramment utilisées. La limitation d’EPSN à 40 noeuds devenait donc un réel problème. Mon premier objectif a été de résoudre le problème d’instabilité d’EPSN, ce qui m’a permis de me plonger dans l’architecture et dans le code source de la plate forme. D’après la figure 2, la couche la plus basse d’EPSN est ColCOWS, la suivante est RedGRID [6] et enfin les dernières sont RedSYM et EPSN. Chacune de ces couches est en réalité une bibliothèque qui peut être utilisée indépendamment l’une de l’autre.
2
Client de Pilotage
Simulation Pilotable
EPSN Back−End API
EPSN Font−End API
RedSYM API
RedSYM EPSN Core RedCORBA ColCOWS
CORBA
F IG . 2 – Les couches logicielles de l’environnement EPSN.
Pour les tests des différentes bibliothèques j’ai utilisé une grappe de calcul en faisant varier le nombre de noeuds de 2 à 128. Les bibliothèques ColCOWS et RedGRID se sont avérées stables. En revanche, la bibliothèque EPSN Core ne fonctionnait plus correctement au-delà de 40 noeuds. D’après ces expériences, on aurait pu en déduire que l’instabilité était du à la couche haute. Cependant d’après les membres du projet EPSN, l’erreur était liée à ColCOWS. En effet ColCOWS ne garantissait pas certaines fonctionnalités, notamment la synchronisation des noeuds lors de l’activation et de la connexion. J’ai donc été chargé d’implémenter ces fonctionnalités afin d’améliorer la stabilité de la plate-forme.
2.2 2.2.1
Amélioration du Collective CORBA Object Workspace (4 mois) Présentation de ColCOWS
ColCOWS [1] est une bibliothèque développée au sein du projet EPSN afin de faciliter le partage de références d’objet CORBA (ou IOR) au sein d’un groupe de processus, formant ce que nous appelons un workspace. Plus précisément, un workspace est constitué d’un ensemble de noeuds, c’est-à-dire des threads ou des processus distincts qui jouent le rôle de serveurs CORBA. Chaque noeud dispose d’un ensemble d’objets CORBA qu’il souhaite mettre en partage (i.e. les références locales). Initialement, chaque noeud possède un ensemble d’IORs locales qu’il souhaite mettre en partage dans le workspace. ColCOWS offre principalement deux fonctionnalités : l’activation et la connexion (figure 3). L’activation est une opération collective comparable à un all-to-all consistant à diffuser à tous les noeuds du workspace l’ensemble des IORs présentes sur chaque noeud. A l’issue de cette opération, chaque noeud possède une connaissance globale de toutes les références locales au workspace. La connexion intervient après l’activation et permet à deux workspaces de mettre en partage l’ensemble des IORs présentes dans chaque workspace. En outre, ColCOWS permet de gérer les opérations inverses : déconnexion et désactivation. 2.2.2
Stabilisation du programme
L’instabilité d’EPSN était d’après l’équipe de ScAlApplix dû a ColCOWS. En effet, ColCOWS ne garantissait pas la synchronisation des noeuds d’un workspace. EPSN pouvait donc être lancé sur un workspace avec des noeuds n’ayant pas toutes leurs références. Un nouvel algorithme d’activation a donc été mis en place (figure 4). L’ancien algorithme considerait le workspace comme activé à l’étape 3, cependant, à cette étape, aucun des noeuds ne sait si tous les noeuds ont toutes les références. Il a fallu donc ajouter une étape d’acquittement supplémentaire. Les algorithmes de connexion, de déconnexion et de désactivation fonctionnent de la même manière : un acquittement est effectué lorsque tout les noeuds ont fait l’opération voulue. En plus de la modification des algorithmes, ColCOWS a été remaniée en profondeur. La bibliothèque ColCOWS est maintenant en version stable. La nouvelle version de la bibliothèque est intégrée dans EPSN. Les tests ont été validés pour la bibliothèque EPSN sur des grappes de 128 noeuds. 3
F IG . 3 – ColCOWS : activation et connexion entre workspaces.
4
F IG . 4 – ColCOWS : algorithme de l’activation d’un workspace.
2.2.3
Communications hiérarchiques
Les algorithmes de communication de la bibliothèque ColCOWS ont été améliorés. Auparavant, les communications étaient séquentielles : le noeud racine envoyait un message à tous les noeuds fils en suivant la topologie d’un arbre séquentiel (figure 5). Cependant, avec plus de noeuds, le noeud racine passe trop de temps à communiquer avec chaque noeuds, les performances chutes. La solution pour diffuser les références aux noeuds fils est de communiquer en envoyant les messages en suivant un arbre binomial (figure 5). Avec cet arbre, on tire parti de l’architecture parallèle de la grappe : le noeud racine sous traite une partie de ses communications à ses noeuds fils. La complexité du nombre d’étapes de communication n’est plus de n noeuds mais de log(n) noeuds.
F IG . 5 – ColCOWS : arbre plat et arbre binomial. Colcows est beaucoup plus rapide en version hiérarchique qu’en version séquentielle (figure 6), notamment sur des grappes de calculs de plus de 50 noeuds. Avec une grappe de 256 noeuds, l’activation est 5 fois plus rapide en utilisant des communications hiérarchiques qu’en utilisant des communications séquentielles.
5
F IG . 6 – ColCOWS : mesure de performances de l’activation d’un workspace.
2.3 2.3.1
Intégration de PadicoTM dans EPSN PadicoTM, une plate-forme de communication pour grille
PadicoTM [2] est une plate-forme de recherche développée pour permettre à un ensemble d’intergiciels d’utiliser un large éventail de réseaux et méthodes de communication. Elle est développée au sein du projet de recherche Runtime. PadicoTM offre un environnement qui résout les conflits d’accès aux ressources (processeur, réseau) pour autoriser la cohabitation efficace de plusieurs exécutifs au sein d’un même processus. Elle permet par exemple d’utiliser conjointement CORBA et MPI sur des réseaux hautes performances. Son ambition est de pouvoir relier les ordinateurs composant les grilles de calcul à grandes échelles tout en tirant le meilleur parti des réseaux disponibles. Par exemple, elle offre l’implémentation CORBA la plus rapide à ce jour. Sur des réseaux hautes performances de type Infiniband, OmniORB peut atteindre une vitesse de transfert de 600Mo/s et une latence d’environ 10 microsecondes [5]. Intégrer PadicoTM à EPSN permettrait donc d’améliorer la rapidité des communications de EPSN (figure 7) et d’augmenter les possibilités de connections (figure 8).
F IG . 7 – Utilisation des réseaux hautes performances via PadicoTM.
6
F IG . 8 – PadicoTM permet de franchir les pare-feux.
2.3.2
ColCOWS / PadicoTM (1 mois)
Afin d’intégrer PadicoTM dans EPSN, il faut d’abord intégrer PadicoTM dans la bibliothèque ColCOWS qui est la couche la plus basse de EPSN. J’ai intégré PadicoTM dans ColCOWS en un mois. Tous les programmes de tests de ColCOWS sont fonctionnels. Cependant un travail important reste à effectuer. PadicoTM est un programme complexe, nécessitant du temps pour être pris en main. La programmation dans un contexte parallèle est difficile, notamment lorsque l’on utilise les réseaux rapides et que l’on veut obtenir de bons résultats. Les tâches restant à réaliser : – Des benchmarks de ColCOWS / PadicoTM sur une grappe de grande taille (supérieur à 100 noeuds) en utilisant les réseaux hautes performances. – L’intégration complète de PadicoTM dans toutes les couches de EPSN, avec une compilation et un lancement aisé de EPSN. – Des benchmarks de chaque couche d’EPSN.
2.4
Autre activité : administration de la grappe de visualisation
Durant ce premier semestre, on m’a proposé de prendre en charge l’administration de la grappe de visualisation du projet EPSN. J’ai notamment utilisé les outils d’administration réseaux DHCP, DNS, NIS. Je suis maintenant l’administrateur principal de la grappe. La grappe se composait initialement d’un noeud frontal centralisant les informations, et de quatre noeuds de calcul permettant la visualisation. Au cours du mois d’avril, sept nouvelles machines remplaçant les anciens noeuds de calculs sont arrivées. Nous avons alors installé Kadeploy [4] sur la frontale avec l’aide de Pierre Lemoine (ingénieur associé Grid’5000). Kadeploy est utilisé sur Grid’5000, il permet de déployer rapidement un système d’exploitation sur plusieurs noeuds de calcul. Kadeploy permet une gestion très souple de la grappe, et notamment, il peut sauvegarder le système d’exploitation d’une machine et le répliquer. Ceci est nécessaire car les utilisateurs de la grappe ont des besoins différents. Par exemple, certains ont besoin d’un sytème RedHat version 4 car le logiciel propriétaire IBM, Deep Computing Visualization (DCV) ne fonctionne que sur cette version, d’autres ont besoin d’un système avec des bibliothèques plus récentes. . . et ceci en utilisant un nombre variable de noeuds.
3
Bilan
Le bilan est très positif. Ma première mission est accomplie, nous avons pu faire fonctionner la plate-forme EPSN sur 128 processus, ce qui était impossible avant la refonte de ColCOWS. Ces premiers mois m’ont beaucoup apporté, aussi bien d’un point de vue relationnel que d’un point de vue scientifique. Je me suis intégré à l’équipe de ScAlApplix, ils m’ont accordé beaucoup de temps et de sympathie. D’un point de vue technique, j’ai développé mes compétences en programmation, notamment dans le domaine
7
des grilles de calcul. J’ai pu aussi apprendre à administrer une grappe d’ordinateurs. Je souhaite donc vivement pouvoir poursuivre mes travaux au sein de l’équipe ScAlApplix. Parmi les travaux restant à effectuer, l’intégration de PadicoTM dans EPSN nécessite plusieurs mois de travail. De plus, nous avons prévu de soumettre un article dans une conférence expliquant les recherches effectuées sur ColCOWS.
Références [1] ColCOWS. Collective CORBA Object WorkSpace. http ://colcows.sourceforge.net/. [2] A. Denis. Contribution à la conception d’une plate-forme haute performance d’intégration d’exécutifs communicants pour la programmation des grilles de calcul. PhD thesis, Université de Rennes I, 2003. [3] A. Esnard. Analyse, conception et réalisation d’un environnement pour le pilotage et la visualisation en ligne de simulations numériques parallèles. Informatique, Université de Bordeaux 1, décembre 2005. [4] Kadeploy. Deployment system for cluster and grid computing. http ://gforge.inria.fr/projects/kadeploy/. [5] PadicoTM. High Performance Runtime Systems for Parallel Architectures. time.futurs.inria.fr/PadicoTM/.
http ://run-
[6] RedGRID. Parallel Data Redistribution Library. http ://www.labri.fr/ esnard/Research/RedGRID.
8