Projet : CAPS

previous up next contents
Précédent : Communication dans les calculateurs parallèles Remonter : Résultats nouveaux Suivant : Contrats industriels (nationaux, européens et


Sous-sections


   
Technologies pour le METACOMPUTING (cf. 2.5)



Participants : Pierrick Beaugendre, Stéphane Écolivet, Pascale Launay, Jean-Louis Pazat, Thierry Priol, Christophe René, Luc Renambot.

Mots clés : metacomputing, Corba, Java, SCI, réseau de stations de travail (NOW), frameworks, objets, transformations de programmes, couplage de codes, synthèse d'images, algorithmes parallèles .

Résumé :

L'accroissement des performances des calculateurs et des réseaux permet d'envisager de nouvelles applications dans le domaine de la simulation. Il est ainsi possible de coupler plusieurs codes de calcul afin d'améliorer la qualité des résultats en prenant en compte un plus grand nombre de phénomènes physiques. L'utilisation de réseaux à hauts débits permet également d'envisager la visualisation des résultats produits par un supercalculateur quelquesoit la distance qui sépare le supercalculateur du système de visualisation. Cette activité a pour objectif de contribuer au développement de technologies qui permettent la conception d'environnement de ``metacomputing''. Nos travaux portent principalement sur des extensions au concept d'objets distribués en y intégrant le parallélisme, la génération automatique de code réparti, la conception de mécanismes de communication efficace entre objets distribués et la conception d'exécutifs pour la programmation par composants logiciels. Enfin, nous validons ces technologies dans le cadre de la synthèse d'images en proposant des techniques de parallélisation et de visualisation dans un environnement fortement distribué.

Objets parallèles distribués



Participants : Thierry Priol, Christophe René.

Ce travail se situe dans la continuation au sein du projet Esprit R & D Pacha. Il s'agit d'introduire le parallélisme au sein d'objets CORBA. Nous avons proposé le concept d'objet CORBA parallèle qui se présente sous la forme d'une collection d'objets CORBA identiques [[27]]. Vu de l'utilisateur, un objet CORBA parallèle ressemble à un objet CORBA standard. A partir d'une référence à l'objet, il peut invoquer l'exécution à distance de méthodes qui seront exécutées simultanément sur tous les objets de la collection. Nous avons proposé d'étendre le langage de spécification d'interface (IDL) afin d'y introduire des moyens d'expression du parallélisme. Il s'agit notamment de spécifier la cardinalité de la collection d'objets ainsi que la distribution des données fournies en paramètre lors de l'appel d'une méthode. Cette extension se présente sous la forme d'une extension de la syntaxe du langage IDL. Nous avons proposé une implémentation du concept d'objet CORBA parallèle au sein d'un environnement MPI. Il s'agit notamment de permettre l'appel à un objet CORBA parallèle à partir soit d'un objet CORBA standard ou soit d'un objet CORBA parallèle. Un objet CORBA parallèle peut également appelé un objet CORBA standard. La distribution de donnée est effectuée au 1sein des talons générés par le compilateur IDL que nous avons modifié pour y ajouter de nouveaux mots-clés. La distribution ou la redistribution de donnée est réalisée par échange de messages (MPI). Ce concept d'objet CORBA parallèle sera la base d'un environnement de Metacomputing en cours de définition dans le cadre du projet Esprit R & D Jaco3.

Transformation de programmes parallèles en programmes répartis



Participants : Pascale Launay, Jean-Louis Pazat.

Nous explorons depuis quelques années la conception et la mise en en \oeuvre d'outils pour la construction et l'exécution efficace de programmes répartis. A partir des résultats que nous avons obtenus dans le cadre du langage High Performance Fortran, nous étudions maintenant la généralisation de cette approche dans un contexte de programmation par objets.

Nous réalisons des transformations de programmes explicitement parallèles en des programmes parallèles et répartis. Grâce à l'utilisation d'un le langage à objets ( JAVA), nous pouvons prendre en compte dans un même cadre la génération de code réparti par distribution de contrôle et par distribution de données.

L'approche repose sur l'utilisation de collections qui sont des objets génériques pouvant contenir tout type d'éléments (et en particulier des tâches). Dans le programme réparti que nous générons, les collections sont remplacées par des ``collections distribuées'' qui permettent d'accéder de manière transparente aux objets distribués. La transformation d'un programme centralisé en programme réparti se fait automatiquement en changeant la bibliothèque des collections utilisées et en transformant les composants définis par le programmeur.

La notion d'objet parallèle CORBA est un cas particulier de collection distribuée. On peut donc espérer transposer la généralisation de l'expression de la distribution que nous avons faite dans le cadre Java pour l'adapter à CORBA et faciliter ainsi la programmation d'applications réparties dans ce cadre.

Les résultats nouveaux que nous avons obtenus concernent :

Conception d'un ORB haute performance



Participants : Stéphane Écolivet, Jean-Louis Pazat, Thierry Priol.

Un ORB (serveur d'invocation de méthodes) constitue le c\oeur d'une implémentation de CORBA. Il permet d'invoquer les méthodes d'un objet dont la localisation et le langage d'implémentation sont inconnus de l'appelant. La conception et la réalisation d'un ORB efficace (faible latence et fort débit) sont cruciales pour l'utilisation de la technologie CORBA au sein d'environnements de metacomputing que nous souhaitons développer au sein du projet. En effet, il s'agit d'utiliser l'ORB pour faire communiquer des informations (données, contrôle) entre plusieurs codes de calcul scientifique ou bien de visualiser des informations à distance en utilisant d'autres technologies complémentaires telles que VRML et JAVA.

Les mises en \oeuvre actuellement disponibles ne permettent pas de tirer parti des performances des réseaux de stations de travail (Myrinet, SCI, etc.). Le souci des concepteurs est plutôt d'offrir l'interopérabilité entre ORB plutôt que la performance. Notre objectif est de conserver cette interopérabilité tout en offrant de nouveaux protocoles plus performants qui s'adaptent mieux aux réseaux tels que Myrinet, SCI ou tout autres réseaux rapides tels que ceux disponibles dans les machines parallèles. En vue de proposer de nouveaux protocoles, nous souhaitons tout d'abord étudier finement les performances d'un ORB existant. Nous travaillons actuellement à l'analyse fine des coûts des mécanismes mis en \oeuvre dans un ORB par l'instrumentation de chacune de ses fonctions. Ceci va nous permettre d'étudier sur quels point les optimisations doivent porter. Nous utilisons le système SALTO développé dans le projet afin d'effectuer une instrumentation automatique du code. L'ORB étudié est celui de MICO, une implémentation de CORBA sous licence GNU GPL.

Exécutif pour la programmation par composants logiciels



Participants : Pierrick Beaugendre, Thierry Priol.

Ce travail est réalisé dans le cadre du projet Esprit D Pacha qui vise à concevoir un multiprocesseur à partir d'un réseau de stations de travail interconnectées par un réseau rapide SCI (Scalable Coherent Interface). Un gestionnaire de ressources, appelé Cobra, a été réalisé en utilisant soit ORBSCI, une implémentation de CORBA réalisée dans le cadre du projet PACHA [[15]] ou soit MICO. Le gestionnaire de ressources est vu comme plusieurs services CORBA ayant chacun une tâche particulière : administration du réseau de stations de travail, gestion des ressources (processeurs, mémoires), chargement et exécution d'objets CORBA parallèles. Un mécanisme de gestion de mémoire virtuellement partagée a été ajouté afin de permettre une communication efficace par mémoire partagée entre objets appartenant à la même collection (objet CORBA parallèle). L'intégration du concept d'objet CORBA parallèle au sein de cet environnement est en cours.

Parallélisation d'algorithmes de synthèse d'images



Participants : Luc Renambot, Thierry Priol.

Notre méthode est fondée sur l'utilisation de deux concepts : les interfaces virtuelles et les masques de visibilité permettant de résoudre l'équation de radiosité sur des environnements très complexes (de l'ordre du million de polygones). Nous avons montré l'impact de ces deux concepts pour améliorer le comportement de l'algorithme de radiosité vis à vis de la hiérarchie mémoire. Pour cela, nous avons utilisé la nouvelle machine Silicon Graphics Origin 2000 du Centre Charles Hermite à Nancy. Cette machine, dotée de 64 processeurs, offre un espace d'adressage global sous forme d'une mémoire virtuelle partagée.

Nous avons proposé une méthode pour contrôler la convergence d'une solution de radiosité calculée en parallèle. Notre approche vise à détecter efficacement la convergence et également à accélérer cette dernière si possible. Des nombreux tests sur une machine SGI Origin 2000 nous ont permis de montrer que cette technique peut apporter des gains substantiels, et n'introduit qu'un niveau très faible d'erreur.

La convergence est détectée par une mise en oeuvre simple basée sur le calcul de l'énergie entrante et sortante de chaque sous-environnements. Il est désormais possible à l'utilisateur de demander une solution pour une convergence donnée. Ensuite, nous avons introduit le paramètre Gmax afin de contrôler et d'accélérer la convergence en modifiant légèrement la fonction de sélection des sources lumineuses. Il est alors possible d'obtenir des accélérations intéressantes (10.3 sur onze processeurs, ou 52.0 sur soixante-quatre processeurs, pour les deux scènes considérées) avec un niveau d'erreur dans la solution produite tout à fait acceptable. Cependant, dans les cas les plus défavorables, un mécanisme dynamique d'équilibrage de charge semble encore nécessaire [[29]].

Une application de visualisation interactive du calcul parallèle de radiosité est en cours de développement sur une grappe de PCs utilisant la technologie d'interconnexion SCI (plateforme PACHA). Cette application exploite l'exécutif Cobra et le concept d'objet CORBA parallèle.

Notre méthode calcule en parallèle l'éclairage de façon progressive, et les données produites sont visualisées directement dans un environnement 3D. Cette étude vise à intégrer notre méthode dans un environnement développé par composants logiciels. Pour cela, nous utilisons la norme CORBA. L'application consiste en différents composants. Tout d'abord, un programme JAVA est chargée dans un navigateur web permettant de lancer et de contrôler notre programme parallèle sur la plate-forme PACHA via l'exécutif Cobra. Ce calcul parallèle est lui-même objet CORBA parallèle. La scène est visualisée à l'intérieur du navigateur sous forme de fichier 3D VRML. Enfin, les communications entre la visualisation et le calcul parallèle sont prises en charge par CORBA. Ainsi, durant le déplacement interactif de l'utilisateur, l'éclairage apparaît dans la scène.



previous up next contents
Précédent : Communication dans les calculateurs parallèles Remonter : Résultats nouveaux Suivant : Contrats industriels (nationaux, européens et