Projet : SINUS

previous up next contents
Précédent : Couplage acoustique-tourbillon Remonter : Résultats nouveaux Suivant : Contrats industriels (nationaux, européens et


Sous-sections


   
Génie logiciel pour le calcul scientifique



Participants : Laurent Hascoët, Christèle Faure (projet SAFIR), Andreas Griewank (université de Dresde, Allemagne), Stéphane Lanteri, Nicole Rostaing-Schmidt (Simulog).

Mots clés : transformation automatique de programme, compilation, parallélisation, SIMD, SPMD, partition de maillage, Différentiation Automatique .

Nous continuons nos recherches autour des outils logiciels qui seraient utiles sur les gros programmmes de calcul scientifique. De tels programmes présentent des particularités qui imposent des contraintes importantes. D'autre part, le domaine du calcul scientifique recèle des besoins en analyses et transformations de code, beaucoup plus variés et complexes que les classiques vérifications de typage et traductions. Cette année, nous avons poursuivi dans trois directions :

Vectorisation étendue



Participants : Laurent Hascoët, Nicole Rostaing-Schmidt (Simulog).

En collaboration avec Simulog, nous avons continué le développement de l'outil PARTITA dans la direction de la parallélisation à grain fin, que l'on peut aussi voir comme l'extension de la vectorisation. Tout d'abord, pour une analyse plus puissante des programmes FORTRAN95, nous avons implanté une fonctionnalité d'analyse interprocédurale des pointeurs. Ceci a été réalisé en collaboration avec Simulog (N. Rostaing-Schmidt). D'autre part, nous avons renforcé la capacité de PARTITA à analyser de gros programmes. Pour cela, nous sommes désormais capables de lancer les analyses de parallélisation sur un certain sous-ensemble des boucles du programme. On peut alors éliminer d'emblée les boucles trop grosses, ou ne paralléliser que certaines boucles choisies par l'utilisateur.

Enfin, nous suivons de près l'évolution de la tentative OpenMP. En effet, il s'agit en quelque sorte du retour de la parallélisation à grain fin sur les boucles. Si cette tentative n'échoue pas prématurément, il sera possible d'utiliser à peu de frais les capacités existantes de PARTITA pour fournir un outil de traduction vers OpenMP. Parmi les choses qui semblent simples, citons la mise en place des OMP PARALLEL DO, NOWAIT, PRIVATE, LASTPRIVATE, REDUCTION. Les choses plus difficiles et nouvelles sont les SECTIONS, un avatar des tâches parallèles.

Partition de maillage



Participants : Laurent Hascoët, Stéphane Lanteri.

L'outil de mise en place des communications pour la parallélisation SPMD, nommé GASPARD, a été poursuivi, pour le rendre applicable sur des programmes réels. L'explosion combinatoire est en voie d'être maîtrisée. Nous avons appliqué l'outil avec succès sur trois programmes :

1.
EXP2D, un programme de résolution des équations de Navier-Stokes compressible, par une méthode explicite.
2.
IMP2D, un programme analogue, mais avec une méthode implicite, donc plus complexe mais plus stable.
3.
NSC3DM, un programme fonctionnant sur des maillages 3D, par des méthodes explicite ou implicite. C'est notre plus gros exemple à l'heure actuelle, et il comporte de l'ordre de 5000 lignes réparties en 16 routines.

Différentiation automatique



Participants : Christèle Faure, Andreas Griewank (université de Dresde, Allemagne), Laurent Hascoët.

Nous continuons notre participation à l'étude de la Différentiation Automatique. Une première direction est l'exploration de méthodes qui limiteraient la quantité de sauvegardes nécessaires au mode inverse. On peut, d'une part, ne pas stocker toutes les variables intermédiaires, et on peut, d'autre part, choisir les points de redémarrage du stockage/recalcul (``checkpoints'') pour réduire le nombre de variables nécessaires au redémarrage (variables d'état).

Par ailleurs, nous étudions une idée émise par A. Griewank, en visite dans le projet SAFIR pour un an à partir d'août 98. Il s'agit de mettre en place un mode direct amélioré, qui pourrait traiter certaines valeurs intermédiaires comme des memo-fonctions. Cela permettrait d'accélérer les calculs, dans le cas où la routine dérivée est appelée plusieurs fois en un même point mais pour des directions de dérivation différentes. Cette participation aux travaux sur la Différentiation Automatique a un nouvel objectif, la proposition prochaine d'un projet de recherche sur les outils logiciels dédiés aux programmes scientifiques.



previous up next contents
Précédent : Couplage acoustique-tourbillon Remonter : Résultats nouveaux Suivant : Contrats industriels (nationaux, européens et