Mots clés : Programmation parallèle et
distribuée, metacomputing, CORBA, grilles de calcul,
environnement de couplage de codes .
Résumé :
L'accroissement rapide de la performance des
calculateurs et des réseaux permet d'envisager des
techniques de simulation numérique par couplage de codes.
Il s'agit non plus de simuler un seul aspect physique d'un
problème mais plusieurs phénomènes physiques simultanément.
Ainsi, par exemple, on pourra simuler le comportement d'un
satellite dans l'espace en y intégrant la dynamique, la
thermique, la déformation de structure et l'optique.
L'enjeu est de réduire les temps de conception d'objets
manufacturés. Pour permettre cette simulation
multi-physique, il est nécessaire d'utiliser un ensemble de
ressources de calcul disponibles sur un réseau afin de
permettre l'exécution simultanée, et de faÇon coordonnée,
de plusieurs codes de simulation. L'objectif de ce thème de
recherche est de concevoir des technologies qui permettent
la construction d'environnements logiciels qui permettent
de supporter efficacement l'exécution d'applications de
simulation numérique distribuée.
En ce qui concerne le deuxième axe, nous contribuons à la
conception d'une infrastructure logicielle, ou Problem
Solving Environment (PSE). Ce type d'environnement
logiciel est rendu nécessaire par l'utilisation intensive de
la simulation numérique lors des étapes de conception
d'objets manufacturés, comme les avions ou les automobiles. A
titre d'illustration, la conception de la prochaine
génération d'avions nécessitera l'utilisation d'une dizaine
de milliers de programmes informatiques qui sont développés
en interne ou bien par des sociétés éditrices de logiciels
[RB96]. Beaucoup de ces programmes concernent
la simulation physique du comportement de telle ou telle
partie de l'objet. Cependant, la simulation n'est pas une
finalité en soi, elle est partie intégrante du processus
d'optimisation dans la conception d'un système physique. Il
est donc nécessaire d'intégrer l'ensemble des logiciels de
simulation au sein d'un PSE afin de permettre de modifier
simplement les paramètres essentiels du système physique et
d'observer le résultat de ces modifications par
simulation.
Un PSE doit permettre d'exploiter les ressources d'une
grappe hétérogène de calculateurs, dispersés
géographiquement, en vue d'exécuter des applications de
simulation numérique distribuée. Nous considérons un ensemble
de grappes de calculateurs homogènes et de calculateurs
hétérogènes interconnectés par un réseau de type LAN. Un PSE
correspond à l'intégration d'un ensemble d'outils et de codes
de simulation pour résoudre un problème donné [RB96]. Ces outils (pour le prétraitement ou la
visualisation) et ces codes de calcul n'ont souvent pas été
conÇus dans une optique d'intégration. Ils ont été développés
le plus souvent sur des architectures particulières
(parallèles); dans certains cas, les sources ne sont pas
disponibles. Ceci impose donc de prendre en compte
l'hétérogénéité des codes.
Notre recherche dans ce domaine consiste à identifier des
services génériques pour la conception de PSE. Il s'agit,
notamment, de concevoir des services au dessus des systèmes
d'exploitation qui permettent, comme précédemment, de masquer
la distribution physique des ressources. La difficulté
provient essentiellement de l'hétérogénéité des ressources
(différents calculateurs) et de la difficulté à fournir des
niveaux de performance élevés de par l'utilisation intensive
des réseaux. L'hétérogénéité impose de prendre en compte les
problèmes tels que la représentation de données différente
entre calculateurs (et, dans certains cas, entre
applications) ainsi qu'une administration et des règles de
sécurité spécifiques à chaque machine. La conception de tels
services est indissociable du modèle de programmation que
nous avons choisi pour la conception d'applications en
simulation numérique distribuée. Nous rappelons que ce type
d'application est un ensemble de codes complexes couplés
entre eux. Nous avons donc naturellement adopté une approche
par composants logiciels comme modèle de
programmation. Plus précisément, nous avons choisi d'utiliser
une technologie à objet distribué de type CORBA ( Common Object Request Broker Architecture).
Cependant, l'adoption d'une telle technologie pose de
nombreux problèmes dus à la nature des applications de
simulation numérique. Le concept de composant logiciel doit
pouvoir prendre en compte les particularités du
parallélisme comme par exemple les modèles d'exécution ou
l'accès aux données (distribuées ou partagées). Un composant
doit pouvoir encapsuler un code composé d'un ensemble de
processus qui s'exécutent sur plusieurs processeurs d'une
grappe de calculateurs homogènes tout en offrant une
interface unique. Il est en effet essentiel de conserver
l'intérêt du concept de composant : c'est-à-dire cacher
à l'utilisateur les détails de l'implémentation du composant.
Pour aborder ce problème, nous avons proposé des extensions à
CORBA qui restent toutefois compatibles avec le standard
actuel. L'idée que nous proposons est fondée sur le concept
de collection d'objets pour implémenter un composant
parallèle. Cette démarche offre l'avantage de conserver une
approche totalement fondée sur les objets distribués.
La communication entre composants est également un
point que nous prenons en compte. Dans le domaine de la
simulation numérique distribuée, le volume de données
transféré entre les différents codes est très élevé (de
l'ordre de plusieurs centaines de Moctets voire quelques
Goctets). Il s'agit donc de concevoir des protocoles de
communication rapides entre objets ou bien de réaliser des
services de gestion de données (répertoire de données) dédiés
qui permettent aux composants de s'échanger efficacement des
données. Bien entendu, la conception de protocoles ou de
répertoires de données doit s'appuyer sur des technologies
réseau qui offrent des performances élevées. Le projet
PARIS tient compte des dernières technologies
dans le domaine des réseaux de type SAN (System Area Network)
ou LAN (Local Aera Network) avec pour objectif d'exploiter de
nouveaux concepts de communication dans la réalisation de
protocoles de communication entre objets distribués. Nous
évaluons, par exemple, le concept d'adressage à distance
offert dans les réseaux de type SAN (SCI, Memory Channel,
Synfinity) et LAN (futur standard Virtual
Interface de Compaq/Intel/Microsoft).
L'exécution d'une application de simulation numérique
distribuée sous forme de composants pose le problème du
placement des composants sur les différents calculateurs de
la grappe en vue d'utiliser au mieux les ressources de calcul
disponibles. Dans une approche fondée sur le concept d'objet
distribué, ce problème peut être abordé par des techniques de
migration dynamique des objets. Dans notre modèle, un
composant peut être vu comme un seul objet (composant
séquentiel) ou une collection d'objets (composant parallèle).
Pour des raisons d'efficacité, nous nous limitons au cas du
traitement de la collection sur une grape homogène. Dans ce
cas, le problème de la migration d'objet, appartenant à une
collection, peut être abordé par l'utilisation et
l'adaptation des mécanismes de migration de processus issus
des recherches du premier axe du projet (cf section 2.2).