Projet : resedas

previous up next contents
Précédent : Gestion de réseaux et services Remonter : Domaines d'applications Suivant : Expérimentation et validation de plates-formes


   
Calculs distribués et transfert des informations

Résumé :

L'objectif du groupe est de permettre une utilisation efficace des techniques actuelles de parallélisation, comme l'échange de messages. Aucune méthode n'existe actuellement pour suivre un cycle de développement de logiciel. Les phases de spécification et de conception sont escamotées et les phases de codage et de tests restent entièrement manuelles et intuitives.

La programmation par échange de messages repose essentiellement sur deux concepts:

1.
la définition de tâches exécutant en parallèle un code séquentiel ;
2.
la définition d'interactions entre les tâches à l'aide de messages échangés.

Sur ces deux points, nous proposons des solutions permettant:

Notre objectif est de définir, expérimenter et valider un environnement de programmation pour le calcul distribué par passage de messages. Les problèmes importants qu'il convient de résoudre sont les suivants: Scilab, logiciel du domaine public développé à l'INRIA dans le cadre du projet Méta-2 (INRIA Rocquencourt) est un logiciel permettant entre autre de faire du calcul scientifique sur une station de travail. Scilab est maintenant un logiciel largement répandu et utilisé par de nombreux scientifiques et ingénieurs. Notre projet vise à étendre les fonctionnalités de Scilab aux plates-formes multi-processeurs. Plus précisément, nous montrons que cette extension, nommée Scilab//et à laquelle le projet RESEDAS a fortement contribué, permet de: (1) conserver l'environnement propre à Scilab ; (2) rester dans une approche interactive ; (3) développer des codes parallèles dans un langage de haut niveau et garantir leur portabilité ; (4) offrir des performances acceptables en terme de puissance de calcul. Du point de vue de l'utilisateur, la parallélisation de Scilab offre un moyen supplémentaire de partager les ressources offertes par un réseau de stations, lui permettant d'augmenter les performances de son application en tirant parti du parallélisme intrinsèque offert par le réseau, tant au niveau des capacités de calcul de machines distantes que de la taille mémoire globale ainsi disponible. La portabilité et l'interopérabilité de la partie communication de Scilab// est assuré par PVM. La flexibilité, la facilité d'utilisation et l'extensibilité de la puissance de calcul est basée pour la partie calcul algébrique sur l'utilisation des bibliothèques parallèles ScaLAPACK et PBLAS. Le paramètre d'extensibilité est très important car il réfère au comportement d'un algorithme lorsque le nombre de processeurs augmente. L'utilisation de telles bibliothèques garantit à l'utilisateur un parallélisme relativement transparent puisqu'il ne décrit que les distributions des matrices et obtient de très bonnes performances.

Le second point sur lequel nous travaillons est rendre le parallélisme encore plus transparent pour l'utilisateur. Effectuer un calcul parallèle requiert que les données soient distribuées de façon efficace et bien souvent se pose le problème de la redistribution des données entre deux étapes de calcul. Nous recherchons des méthodes permettant d'évaluer si entre deux phases une redistribution est nécessaire, ce en fonction du volume de données à échanger, du type de calcul à effectuer, des performances du réseau de communication... A terme, ces recherches doivent permettre à l'utilisateur de déclarer uniquement les ressources de calcul dont il dispose et le système doit de lui même (i.e., avec le moins de directives possibles) décider de lancer un calcul en parallèle, de rapatrier ou de redistribuer les données entre deux phases de calcul. Pour finir, nous travaillons à l'extension de Scilab//, et donc à la parallélisation de modules existant dans Scilab. Entre autres, nous développons une bibliothèque d'algorithmes parallèles sur les graphes (fermeture transitive, plus court chemin, ...) afin d'offrir un équivalent aux algorithmes séquentiels présents dans la librairie Metanet de Scilab. Nous travaillons également sur l'interfacage d'autres bibliothèques de calcul numérique, notamment autour des matrices creuses.



previous up next contents
Précédent : Gestion de réseaux et services Remonter : Domaines d'applications Suivant : Expérimentation et validation de plates-formes