Team PARIS

Members
Overall Objectives
Scientific Foundations
Application Domains
Software
New Results
Contracts and Grants with Industry
Other Grants and Activities
Dissemination
Bibliography
Inria / Raweb 2002
Project: PARIS

Project : paris

Section: Overall Objectives


Keywords : Programmation parallèle et distribuée , metacomputing , CORBA , grilles de calcul , environnement de couplage de codes , gestion de données à grande échelle .

Programmation d'une grappe hétérogène de calculateurs

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 et de stockage de données 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. Les activités de recherche sont regroupées selon deux thèmes principaux : les grilles de calcul et les grilles de données.

En ce qui concerne cet 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. À 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 . 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 (processeurs, mémoires, disques) 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 local. Un PSE correspond à l'intégration d'un ensemble d'outils et de codes de simulation pour résoudre un problème donné . 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.

Grilles de calcul

La conception de services pour faciliter la programmation des grilles de calcul 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 Méga-octets voire quelques Giga-octets). 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éseaux 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 Area 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 et 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 grappe 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).

Grilles de données

Si les grilles de calcul ont fait l'objet de nombreux travaux ces dernières années, en revanche, peu d'efforts ont été faits pour faire avancer les aspects liés à la gestion des données à très grande échelle, pourtant non triviales. Paradoxalement, on dispose à ce jour d'infrastructures complexes de calcul permettant d'ordonnancer des calculs répartis sur plusieurs sites, alors que le transfert des données vers ces sites est laissé à la charge de l'utilisateur, où, au mieux, des fonctionnalités rudimentaires de type transfert de fichiers (FTP) sont proposées. Ceci devient un facteur limitant dans l'exploitation efficace des grilles de calcul.

Dans ce contexte, il nous semble important de complémenter les recherches sur les mécanismes de gestion des calculs sur la grille par des recherches sur une gestion efficace des données utilisées par ces calculs. L'objectif est de revoir les techniques classiquement utilisées pour la gestion des données partagées à l'échelle d'une grappe à la lumière des nouvelles problématiques liées au passage à l'échelle. Est-ce que les modèles de cohérence et les protocoles utilisés classiquement à l'échelle d'une grappe sont adaptés pour une utilisation à très grande échelle ? Est-ce que les hypothèses fondatrices de ces modèles restent valides ? Est-ce que les contraintes de mise en oeuvre sont les mêmes ? Les réponses semblent négatives aujourd'hui et il est clairement nécessaire de revoir de très près, dans ce domaine, tout un ensemble de principes directeurs et de techniques qui en sont issues.

Le projet Paris a démarré une étude sur les principes de conception d'un service de partage de mémoire à grande échelle, permettant la mise en place de mécanismes d'accès transparents aux données. Un tel service doit être responsable de la gestion de l'allocation, de la localisation, de la réplication, de la cohérence et de la distribution des données. Une application typique pour un tel système est le couplage de code : deux applications s'exécutant sur deux grappes distribuées pourront communiquer à travers une mémoire partagée à grande échelle, qui prendra en charge de manière transparente le transfert et la redistribution des données. Dans ce contexte, les réseaux pair-à-pair apparaissent comme en cadre qui illustre bien les caractéristiques d'un environnement réparti à grande échelle. Ces réseaux ont jusqu'à présent été étudiés pour des applications de partage de fichiers. Ce type de partage est un cas particulier de partage de données qui correspond à une réplication en lecture seule. Nous nous intéressons au cas plus général du partage de mémoire vive, qui nécessite l'intégration de mécanismes de gestion de la cohérence des données répliquées, modifiables.


previous
next