POM : une machine parallèle observable


English version
La POM est une machine parallèle virtuelle dotée de mécanismes permettant d'observer le comportement des applications réparties. Sa principale raison d'être est de masquer les spécificités des divers noyaux de communication disponibles sur les machines parallèles disponibles à ce jour, sans dégradation significative des performances. POM se présente sous la forme d'une bibliothèque pouvant être mise en oeuvre au dessus des multiples noyaux de communication existant sur les architectures parallèles actuelles, et d'un lanceur offrant à l'utilisateur une syntaxe homogène pour lancer des applications sur n'importe quelle plate-forme. Les services de communication offerts par la POM sont des services de base, mais leur sémantique est clairement définie et ils peuvent être aisément et efficacement mis en oeuvre. La POM est donc particulièrement bien adaptée au développement d'applications pour lesquelles les performances figurent au rang des objectifs majeurs.

La POM définit un modèle de machine virtuelle qui consiste en un ensemble de noeuds d'application communiquant via deux réseaux distincts. Le premier réseau est dédié aux communications en point-à-point, tandis que le second est utilisé pour les diffusions.

la POM a été dotée de mécanismes d'observation sophistiqués. Elle peut être perçue comme un moyen pratique pour interfacer une application répartie avec des analyseurs de trace ou des outils de visualisation graphique. Des mécanismes d'observation ont été incorporés à bas niveau dans la bibliothèque afin d'être aussi peu intrusifs que possible.

La technique d'observation privilégiée dans la POM est basée sur l'analyse de traces d'exécution, plutôt que sur une observation directe des applications réparties. Outre les noeuds d'application, la machine virtuelle peut comporter un noeud d'observation complémentaire dont le rôle est de collecter et de traiter les informations de trace relatives au comportement d'une application. Le noeud d'observation peut procéder à une analyse << à la volée >> des informations collectées, ou bien il peut stocker ces informations pour une analyse post-mortem.

La POM offres plusieurs mécanismes de datation, dont la gestion demeure totalement transparente pour le programmeur d'application et qui peuvent être activés ou désactivés séparément lors du lancement d'une application. Les événements tracés peuvent être estampillés et/ou datés, et la datation peut être réalisée dans un référentiel de temps local ou global. L'estampillage des événements (à l'aide d'estampilles vetorielles ou adaptatives) permet d'analyser les synchronisations qui ont lieu entre les noeuds d'application pendant une exécution répartie. Le mécanisme de datation globale dont est dotée la POM est basé sur une méthode statistique non intrusive qui s'appuie sur l'estimation des dérives des horloges physiques des noeuds d'application par rapport à une horloge de référence.

À ce jour, la POM a été portée sur plusieurs plates-formes, parmi lesquelles les machines Intel iPSC/2 et Paragon XP/S, ainsi que sur un réseau de stations de travail de type Sun Sparc. Nous avons ainsi pu tester sa portabilité, et la POM fait à présent partie intégrante des divers environnements de programmation développés dans notre laboratoire. Dans le futur, il est prévu de porter la POM sur de nouvelles plates-formes, telles que la Cray T3D et l'IBM SP1.


Document Postscript disponible : F. Guidec, Y. Mahéo, "POM: a Virtual Parallel Machine Featuring Observation Mechanisms". Publication interne No 902, IRISA, janvier 1995. (Également disponible en rapport de recherche Inria No 2473.)


$Date: 1997/01/03 13:13:30 $