Sous-sections

Compilateurs et bibliothèques

L'objectif de ce premier thème du projet est de rendre le parallélisme transparent pour l'utilisateur, ou du moins de faciliter sa mise en oeuvre.

Parallélisation automatique et transformation de programmes

Il s'agit de développer et d'intégrer de nouvelles stratégies permettant de transformer (semi-)automatiquement des portions de code séquentiel (principalement des boucles Fortran) en codes annotés par des directives de type HPF (High Performance Fortran) ou OpenMP. Le but est d'aider le programmeur à identifier le parallélisme potentiel de son code au niveau des boucles et d'effectuer automatiquement les transformations nécessaires à sa place (ordonnancement, placement, partitionnement, etc.)

Si les technologies de processeurs évoluent rapidement, elles exigent des compilateurs de plus en plus performants pour les exploiter. Les processeurs actuels disposent aujourd'hui de capacités à exécuter simultanément plusieurs instructions par un pipe-line logiciel. Les techniques de parallélisation automatique étudiées depuis plusieurs années devraient être (ou sont?) utilisées par les prochaines générations de compilateurs. Un des prochains enjeux concernera certainement la synthèse de circuits pour intégrer au niveau du matériel des dispositifs facilitant la conception des compilateurs.

Nos travaux présentent deux facettes, fortement couplées:

Bibliothèques et algorithmique parallèle hétérogène

Bibliothèque ScaLAPACK : Nous contribuons à plusieurs titres au développement de la bibliothèque d'algèbre linéaire ScaLAPACK pour machines parallèles, qui vise aussi bien la classe des supercalculateurs à mémoire partagée que celle des réseaux de stations de travail à mémoire distribuée:

Scilab parallèle : Scilab est un logiciel de calcul scientifique de type Matlab développé par le projet Méta-2 à l'INRIA. Une intégration de PVM dans Scilab permet déjà l'accès à la bibliothèque ScaLAPACK. Nous développons une version parallèle de Scilab en collaboration avec Méta-2 et Résédas. Ainsi l'utilisateur pourra-t-il appeler une procédure de la bibliothèque, qui s'exécutera de manière relativement transparente sur les ressources parallèles auxquelles il a accès.