FLASH INFORMATIQUE FI



Vers un outil Peer-To-Peer orienté calcul intensif




Nabil ABDENNADHER

Régis BOESCH


Introduction

Le développement des réseaux haut débit et la disponibilité de ressources informatiques faiblement utilisées sur Internet laissent penser qu’il est tout à fait possible de construire un gigantesque ordinateur virtuel permettant un accès homogène et transparent à ces ressources. L’objectif des systèmes Peer-To-Peer (P2P) est de faire collaborer des milliers d’ordinateurs pour exécuter un service donné : échange de données [1], [2], exécution d’une application de calcul intensif : Seti@home, Entropia™, United device™, Parabon Computation™, etc.
Cet article présente une plate-forme P2P appelée XtremWeb-CH (XW-CH), développée à l’École d’Ingénieurs de Genève (EIG). XW-CH est une amélioration de l’environnement XtremWeb, développé à l’Université d’Orsay (Paris, France). XW-CH est utilisé pour exécuter des applications distribuées de haute performance sur des ordinateurs anonymes connectés à Internet.
Ce papier est organisé comme suit. La prochaine section présente l’environnement XW tel que développé par l’Université d’Orsay. Le paragraphe XtremWeb-CH présente l’environnement XW-CH et les améliorations qu’il apporte par rapport à XW. Enfin, le déploiement de XW-CH est détaillé en dernière section.

XtremWeb

XtremWeb [3] est un environnement de calcul P2P orienté hautes performances. Il permet à des centres de recherche, des universités et des industriels d’installer et d’utiliser leur propre système de calcul P2P pour leurs travaux de recherche ou pour la production de calcul. XW est une plate-forme généraliste : à la différence de projets tels que Seti@home, , XW n’est pas dédié à une application particulière, mais peut supporter toute application proposée par l’utilisateur. L’architecture générale d’XtremWeb est centralisée (fig. 1) : un serveur organise les calculs sur des machines distantes anonymes appelées workers.

JPEG - 10.1 ko
fig.1
Architecture de XtremWeb

À la demande d’un client qui désire exécuter son application, le serveur XW l’affecte à un worker en lui transmettant son code et ses données d’entrée. À la réception des résultats, le serveur XW les renvoie au client. Dans sa version originale, XW supporte des applications mono-module (par opposition aux applications distribuées multi-modules).

XremWeb-CH

XtremWeb-CH est une version améliorée de XtremWeb. Cet environnement permet l’exécution d’applications parallèles/distribuées composées de modules communicants. L’application est décrite par un graphe flux de données où les nœuds sont les modules de traitement et les liens inter-nœuds représentent les échanges de données entre ces modules. Le graphe flux de données est représenté par un fichier XML qui décrit les modules et les données échangées.
Un module n’est affecté à un worker que si ses données d’entrées sont disponibles. Une donnée est dite disponible si elle a été générée par un module précédent. Initialement, la seule donnée d’entrée disponible est celle qui est fournie par l’utilisateur pour exécuter le (ou les) premier(s) module(s). Les différents modules de l’application (à l’exception du premier) sont initialement bloqués : ils ne peuvent être exécutés puisque leurs données d’entrée ne sont pas disponibles.
A la fin de l’exécution d’un module par un worker, celui-ci informe le serveur. Un processus particulier de XW-CH, appelé espion, parcourt alors tous les modules bloqués pour débloquer ceux dont les données d’entrée sont maintenant disponibles. Le processus ordonnanceur de XW-CH se charge alors de les affecter à des workers libres.
La communication entre les modules se fait directement entre les workers exécutant ces modules (sans passer par le serveur). Cette nouvelle fonctionnalité est une extension de XW-CH par rapport à XW. En effet, dans XW les communications entre workers ne peuvent avoir lieu que via le serveur. Ce dernier se trouve alors déchargé des tâches de communication. XW-CH s’approche donc davantage du concept P2P : les nœuds ont les mêmes fonctions, le même pouvoir. L’architecture de XW-CH est donc partiellement décentralisée par rapport à celle de XW.
Lorsqu’un worker finit son exécution, il stocke ses résultats dans un fichier temporaire et envoie un signal au serveur XW-CH lui indiquant la fin normale de son exécution et l’emplacement du fichier résultat : adresse IP et répertoire. Lorsque le serveur XW-CH affecte les modules nouvellement débloqués à des workers libres, il leur envoie aussi l’emplacement de leur donnée d’entrée. Le transfert des données se fait donc directement entre workers. Dans le cas où l’un des workers est protégé (adresse interne, pare-feu, etc.), la communication directe ne peut avoir lieu. L’échange de données se fait alors via une machine relais.

Déploiement de XtremWeb-CH

Aujourd’hui, le serveur de XW-CH tourne sous Linux alors que les workers tournent sous les systèmes Linux, Windows et SunOS. La plate-forme expérimentale de XW-CH est constituée de 100 machines installées à l’EIG. Celles-ci sont très hétérogènes : Pentium 2, 3 et 4. Il est possible de charger et installer le module worker à partir de l’URL : http://www.xtremwebch.net/xtremweb.php. La plate-forme expérimentale actuelle est utilisée dans le cas concret d’une application de génération d’arbres phylogénétiques.
La phylogénétique est la science qui permet de reconstruire les relations de parenté entre organismes vivants à partir de leurs séquences ADN. Un arbre phylogénétique (appelé aussi arbre de vie) est alors construit pour montrer les liens de parenté entre les espèces. L’arbre phylogénétique montre la succession chronologique de l’apparition de nouvelles espèces (et/ou de nouveaux caractères) au cours du temps ainsi que leurs relations de parenté (fig. 2).

JPEG - 7 ko
fig.2
Exemple d’arbre phylogénétique

La reconstruction de l’arbre de vie est particulièrement utile dans le cas des virus ARN (Acide Ribo Nucléique) tels que le HIV (Human Immunodeficiency Virus) connu sous le nom de sida, le HCV (Hepatitis C Virus), etc. Dans le cas du HIV, l’identification des mutations associées à la résistance du virus est cliniquement importante. L’analyse de la diversité du HIV fournit de précieuses informations quant à sa propagation à partir de son lieu.
Dans le cas du HIV ou du HCV, la génération d’un arbre de vie peut s’avérer lente. En effet, ces virus se distinguent (des autres virus) par le manque de fidélité de leur processus de réplication. Ceci se traduit, inévitablement, par un nombre important de séquences correspondant à la même famille de virus.
Le laboratoire de virologie de l’Hôpital Universitaire de Genève (HUG) travaille depuis plusieurs années sur les stades précoces de l’infection HIV. Pour générer ses arbres phylogénétiques, ce laboratoire utilise une application appelée PHYLIP (logiciel libre). Plusieurs méthodes de reconstitution d’arbres phylogénétiques sont supportées par PHYLIP. Dans certains cas, la lenteur de traitement de PHYLIP empêche les chercheurs de lancer de gros calcul pour approfondir leurs analyses. Cette lenteur est fonction de la méthode employée et du nombre de séquences (en entrée de l’application). Le temps de réponse des applications de reconstitution des arbres phylogénétiques reste donc un problème ouvert dans le cas où le nombre de séquences analysées est important (cas des virus HIV).
Le portage de PHYLIP sur XW-CH vise donc à réduire le temps de réponse de cette application lorsque la taille de l’arbre est importante (nombre important de séquences). L’objectif est de fournir aux chercheurs du Laboratoire de virologie une puissance de calcul dont les coûts de maintenance et d’exploitation sont quasiment nuls.

Conclusion

Les premiers tests effectués avec XW-CH ont permis de valider les choix retenus lors des phases de conception et de développement : modélisation de l’application distribuée, communication directe entre workers, etc.
D’autres travaux sont en cours pour :

  • valider XW-CH dans le cas concret d’autres applications parallèles/distribuées notamment dans le domaine des télécommunications ;
  • résoudre les problèmes de sécurité liés à l’asymétrie du réseau Internet ;
  • générer de manière automatique la granularité de l’application en fonction du nombre de workers disponibles ;
  • concevoir une version multiserveur permettant la communication interserveur et l’équilibrage de charges.

Bibliographie

[1] Kan G., Peer-to-Peer : harnessing the power of disruptive technologies, Chapter Gnutella, O’Reilly, Mars 2001.
[2] Ian Clarke. A Distributed Decentralised Information Storage and Retrieval System. Division of Informatics. Univ. of Edinburgh. 1999. freenet.sourceforge.net
[3] Franck Cappello et al.. Computing on Large Scale Distributed Systems : XtremWeb Architecture, Programming Models, Security, Tests and Convergence with Grid. In Future Generation Computer Science (FGCS), 2004.



Cherchez ...

- dans tous les Flash informatique
(entre 1986 et 2001: seulement sur les titres et auteurs)
- par mot-clé

Avertissement

Cette page est un article d'une publication de l'EPFL.
Le contenu et certains liens ne sont peut-être plus d'actualité.

Responsabilité

Les articles n'engagent que leurs auteurs, sauf ceux qui concernent de façon évidente des prestations officielles (sous la responsabilité du DIT ou d'autres entités). Toute reproduction, même partielle, n'est autorisée qu'avec l'accord de la rédaction et des auteurs.


Archives sur clé USB

Le Flash informatique ne paraîtra plus. Le dernier numéro est daté de décembre 2013.

Taguage des articles

Depuis 2010, pour aider le lecteur, les articles sont taggués:
  •   tout public
    que vous soyiez utilisateur occasionnel du PC familial, ou bien simplement propriétaire d'un iPhone, lisez l'article marqué tout public, vous y apprendrez plein de choses qui vous permettront de mieux appréhender ces technologies qui envahissent votre quotidien
  •   public averti
    l'article parle de concepts techniques, mais à la portée de toute personne intéressée par les dessous des nouvelles technologies
  •   expert
    le sujet abordé n'intéresse que peu de lecteurs, mais ceux-là seront ravis d'approfondir un thème, d'en savoir plus sur un nouveau langage.