previous up next contents
Précédent : Systèmes à partage Remonter : Systèmes distribués extensibles Suivant : Disponibilité des systèmes

Système d'exécution sur réseau de machines hétérogènes (Stardust)

  Participants : Gilbert Cabillic, Isabelle Puaut

Nous nous intéressons ici à la construction d'un environnement d'exécution parallèle visant à exploiter au mieux la puissance de calcul d'un réseau local de machines hétérogènes incluant à la fois des stations de travail et des machines parallèles. Parmi les problèmes que nous avons identifiés pour la construction d'un tel environnement, nous privilégions :

L'environnement d'exécution parallèle résultant, nommé Stardust, permet aux processus de communiquer à la fois par échange de messages et par mémoire virtuelle partagée (MVP), l'interface MVP étant celle de la MVP MYOAN. Un mécanisme de transformation de données est mis en place afin de permettre le transfert d'informations entre des machines utilisant des codages physiques de données différents. Les données sont transférées grâce au format de représentation indépendant machine XDR, ce qui facilite l'intégration de nouveaux types d'architectures. De manière à limiter le surcoût en temps d'exécution lié à la transformation de données, le logiciel réalisant la communication par mémoire virtuelle partagée est structuré en deux niveaux. D'une part, un niveau MVP par architecture et système d'exploitation, nommé MVP homogène, gère les transferts et la cohérence des données en interne à l'architecture cible, et ceci sans transformation de données. Les communications entre représentants locaux de ce niveau de logiciel (serveurs de pagination dans le noyau Mach, "mappeurs" dans le noyau Chorus) suivent le protocole de communication défini par le noyau sous-jacent. D'autre part, un niveau MVP nommé hétérogène, gère les transformations de données entre architectures et systèmes d'exploitation différents. Ce niveau définit un protocole de transfert des données indépendant du système d'exploitation sous-jacent, transforme les données via le format XDR et gère la fragmentation des données dues à des tailles de données et de pages virtuelles différentes.

Le mécanisme de déplacement et de reconfiguration des applications mis en place dans Stardust est intégré au sein des barrières de synchronisation présentes dans de nombreuses applications parallèles. De ce fait, l'ensemble des états des processus forme un état global cohérent du système. Cet état peut être sauvegardé sur disque dans l'objectif de redémarrer les processus de l'application à la suite d'une défaillance. Il peut aussi être transféré sur d'autres machines (en nombre éventuellement différent de celui des machines d'origine) dans l'objectif d'équilibrer les charges des différentes machines. Ce type de reconfiguration est déclenché dès que la charge d'une des stations utilisées par une application atteint un seuil critique fixé au préalable. La reconfiguration est en outre guidée par le programmeur qui spécifie par priorité décroissante les différentes topologies de son application (la topologie d'une application fixe ses besoins en terme de nombre et type de processeurs requis).

Un prototype de l'environnement Stardust est en cours de développement et sera opérationnel début 1996. Il permet dès maintenant le développement d'applications s'exécutant à la fois sur des noeuds de la machine parallèle Paragon (processeur i860, système d'exploitation Paragon OSF/1, à base du micro-noyau Mach) et sur des machines de type PC de la plate-forme Astrolab (processeur Pentium, système d'exploitation à base de micro-noyau, Chorus/ClassiX). Une extension de Stardust à des stations de travail Sun est envisagée.

Nos travaux actuels portent sur l'étude de mécanismes visant, dans un environnement tel que Stardust, à fournir aux applications des garanties sur leur temps de réponse, tout en partageant l'architecture physique par plusieurs applications. Les mécanismes visés relèvent de la réservation de ressources et de la migration de processus.


previous up next contents
Précédent : Systèmes à partage Remonter : Systèmes distribués extensibles Suivant : Disponibilité des systèmes