Calcul numérique intensif

Présentation de la thématique

Contexte scientifique

L'équipe Génie Logiciel Scientifique et Calcul Global a pour objectif d'étudier l'algorithmique numérique parallèle et répartie et de développer des outils qui facilitent leur réalisation et leur intégration dans des applications scientifiques plus spécialisées. Ces outils doivent rendre transparent à l'utilisateur potentiel la complexité des algorithmes, des modèles utilisés lors de leur programmation et de l'architecture sous-jacente. La transparence ne doit pas être obtenue au détriment des performances de ces applications. Tout ceci nécessite des compétences en calcul numérique, en calcul parallèle et distribué, ainsi qu'en génie logiciel.

Actions de recherche

Construction d'objets parallèles

Nous avons entrepris la construction d'objets pour l'élaboration d'algorithmes d'algèbre linéaire utilisables par des architectures à mémoire distribuée. Notre objectif est de séparer l'algorithme numérique (par exemple, les méthodes des itérations de sous-espaces) et les objets de bases (matrices, vecteurs, etc.). De plus, le parallélisme doit être transparent pour l'utilisateur potentiel de nos logiciels. Enfin, cette transparence ne doit pas être obtenue au détriment des performances du code objet. Ceci devra permettre une ré-utilisation des codes aussi bien séquentiels que parallèles. Nous avons développé une bibliothèque de classes de base en C++ pour les applications d'algèbre linéaire. Le parallélisme est ensuite déduit grâce aux mécanismes d'héritage et de polymorphisme. Les classes séquentielles sont «parallélisées» avec la bibliothèque explicite de passage de messages OOMPI encapsulant les appels à MPI. Les expérimentations sont réalisées sur un réseau de stations Unix et sur la machine parallèle Cray T3E de l'IDRIS. Ce travail a été mené dans le cadre d'une convention CIFRE avec la société ADULIS et est poursuivi dans le cadre d'une thèse.

Algorithmes hybrides pour le calcul global

Beaucoup d'applications du calcul scientifique sont constituées de plusieurs phases chacune traitée par un algorithme différent. Ces algorithmes ont un parallélisme de nature différente (vectoriel, parallélisme de données, parallélisme de tâches), voir pas de parallélisme du tout. Les méthodes de projection et les méthodes hybrides pour la résolution de très grands systèmes algébriques sont des exemples typiques de ce type d'applications. Le caractère hétérogène du point de vue du mode de parallélisme, de ces méthodes peut être un facteur de nouvelles optimisations. La répartition des différents algorithmes sur différentes architectures selon la nature de leur parallélisme potentiel pour une application donnée est une tâche difficile. Cette répartition implique une étude des communications entre ces architectures ainsi que l'analyse d'éventuelles synchronisations des résultats intermédiaires. L'interconnexion d'architectures hétérogènes pour une même application est très délicate.

Nous avons proposé une méthode hybride pour la résolution des grands problèmes de valeurs propres creux et non-Hermitiens. Nous avons réparti cette méthode, appelée Arnoldi hybride ou MERAM (Multiple Explicitly Restarted Arnoldi Method), sur des machines (parallèles et/ou séquentielles) hétérogènes interconnectées. Cet emploi de méta-calculateur a, paradoxalement, l'effet d'accélérer la convergence de la méthode d'Arnoldi. Nous avons également effectué des travaux sur la répartition des méthodes d'Arnoldi et de Lanczos par bloc sur des machines ou nœuds de calcul constituant un méta-calculateur. Ce travail se prolongera dans l'étude d'outils permettant de faciliter la construction de codes hybrides: coupleurs de codes, langages de contrôle, environnement de méta-computing.

Techniques de génie logiciel pour le calcul global

Les applications pour le calcul scientifique haute performance sont multidisciplinaires par nature, le développement de ce type d'applications est une tâche complexe, cette complexité est due à des facteurs variés, tels que :

  1. la dynamicité et le caractère hétérogène des nouvelles méthodes numériques et des algorithmes de base,
  2. le nombre important de paramètres pour ces méthodes,
  3. l'hétérogénéité de l'architecture matérielle sous-jacente.

Pour cette raison le fait de disposer des outils facilitant le développement de ces applications devient un réel besoin. Ces outils ont pour objectif de faciliter la tâche des chercheurs en leur permettant de travailler à un niveau d'abstraction convenable, sans avoir à se soucier de ces problèmes. Pour la conception et la réalisation de tels outils, des recherches concernant les aspects d'interface utilisateur et de langages d'expression du parallélisme/distribution (langages de contrôle) doivent être menées.

Au sein de l'équipe nous nous intéressons à l'utilisation des acquis du génie logiciel dans le cadre du développement d'applications scientifiques haute performance. Une de grandes réussites du génie logiciel est la définition des méthodes et des techniques pour permettre la construction des applications complexes, tout en cachant à l'utilisateur finale la complexité de la plateforme logicielle/matérielle d'accueil (langages de programmation, systèmes d'exploitation, paradigmes de programmation, etc.). Cette plateforme par ailleurs, évolue constamment. Nous nous intéressons particulièrement à l'application des techniques basées sur la notion d'objets, cette approche a fait ses épreuves dans des nombreux domaines. L'approche objet permet de concevoir et de réaliser des systèmes logiciels avec des possibilités d'entretien plus facile et un niveau élevé de réutilisation.

Un projet ayant pour but le développement d'un framework, appelé YML destiné à la construction d'applications scientifiques permettant d'exploiter les puissances de calcul des environnements pair à pair est en cours de réalisation. Ce framework fourni des outils pour le développement, l'exécution et la surveillance de ces applications. Parmi ces outils nous trouvons : le langage YvetteML pour exprimer les calculs, le environnement d'exécution pour ce langage et l'interface utilisateur.

Membres de l'équipe

Permanents

Ancien membres

 Imprimer 

DMC Firewall is developed by Dean Marshall Consultancy Ltd