![]()
Précédent : Salto : un environnement de
transformations Remonter : Logiciels Suivant : Do! : Générateur
automatique de code
Participants : Pierrick Beaugendre, Thierry Priol.
Contact: Thierry Priol.
Statut: L'INRIA a signé une lettre d'intention dans le but
de permettre la commercialisation non-exclusive de Cobra par la
société Spacebel (Belgique).
Cobra est un exécutif permettant l'exécution de composants
logiciels parallèles sur une plateforme constituée d'un ensemble
de PC (n
ud) interconnecté par
SCI (Scalable Coherent Interface).
SCI offre la possibilité d'accéder, de façon
transparente, à la mémoire de n'importe quel n
ud
du réseau. La technologie utilisée s'appuie sur le standard
CORBA que nous avons étendu pour prendre en compte
le parallélisme. L'exécutif Cobra permet de concilier la
programmation distribuée et la programmation parallèle. La
programmation distribuée permet l'utilisation simultanée de
plusieurs ressources nécessaires au fonctionnement de
l'application. Ces ressources sont souvent distribuées
géographiquement. La programmation parallèle a, quant à elle,
pour objectif d'exploiter les ressources pour réduire les temps
d'exécution de l'application. Dans les deux cas, il s'agit
d'offrir des mécanismes de communication afin de faire coopérer
l'ensemble des processus nécessaires au fonctionnement de
l'application.
La spécification d'un composant logiciel parallèle s'effectue au travers du langage IDL que nous avons étendu pour prendre en compte les aspects du parallélisme (distribution des données,...). Ces extensions sont des nouveaux mots clés du langage IDL.
L'exécutif Cobra permet de gérer les ressources d'un réseau de
stations de travail en vue de l'exécution de composants logiciels
parallèles. Pour Cobra, un composant logiciel parallèle est une
collection d'objets identiques. Chaque objet de cette collection
s'exécute sur un des n
uds (appelé n
ud
de calcul) d'une machine virtuelle partagée. L'exécutif Cobra
permet la gestion d'un ensemble de machines parallèles virtuelles
où s'exécutent des composants logiciels parallèles. La
communication entre composants s'effectue au choix soit au
travers d'un ORB (CORBA) ou soit au
travers de segments de mémoires partagées gérés par
l'exécutif.
L'exécutif Cobra est mis en
uvre sous forme de
composant logiciel CORBA. Ce choix de conception
permet une utilisation de l'exécutif à partir de n'importe quelle
machine du réseau Internet quelque soit son système
d'exploitation et les compilateurs disponibles (
C++, Java). Cobra offre les fonctions
suivantes :
Ces fonctionnalités sont implémentées par plusieurs services
CORBA. Le service d'administration s'exécute sur
un n
ud dédié (appelé n
ud
d'administration). Les autres services (machine virtuelle
parallèle, segments de mémoire partagée, lancement
d'applications, etc.) s'exécutent sur un n
ud de
service. La plateforme peut avoir plusieurs n
uds
de service afin de permettre à un grand nombre d'utilisateurs
d'exploiter la machine sans contention. Ces différents services
partagent des informations sur l'état de la machine (allocation
des ressources) via des segments de mémoire partagée offert par
la technologie SCI.
L'utilisation de l'exécutif peut s'effectuer de plusieurs manières :
Du côté des composants logiciels parallèles, Cobra offre une librairie pour la programmation parallèle : échange de messages, synchronisation, accès aux segments de mémoire partagée globaux (accessibles par les composants parallèles s'exécutant sur une machine virtuelle parallèle), accès aux segments de mémoire gérés par un mécanisme de mémoire virtuelle partagée (accessibles uniquement au sein du composant parallèle),... Toutes ces fonctions exploitent les capacités de la technologie SCI.
L'exécutif est implémenté en C++ et utilise
ORBSCI (implémentation de CORBA par Spacebel) ou
MICO, une implémentation de CORBA réalisée par
l'Université de Francfort. Des applets Java ont été développés
pour permettre l'administration de la plateforme au travers d'un
serveur Web installé sur le n
ud d'administration
de la plateforme.