Projet : CAPS

previous up next contents
Précédent : Architectures de processeurs Remonter : Présentation et objectifs généraux Suivant : Communication dans les calculateurs parallèles


   
Environnements de développement pour architectures hautes performances

Mots clés : Matlab, programmation parallèle, parallélisation automatique, portage d'applications, optimisation .

Résumé :

L'obtention de performances sur les architectures hautes performances nécessitent des outils logiciels adaptés qui cachent à l'utilisateur la complexité des matériels et des systèmes. Les actions de recherches que nous menons visent à fournir aux utilisateurs de calculateurs hautes performances des outils tels que compilateur, aide au portage, optimiseur pour permettre des développements et/ou portages d'applications hautes performances. Ainsi, nous développons Menhir, un compilateur Matlab pour machines parallèles, TSF, un outil d'aide au portage de codes Fortran sur architectures hautes performances et SALTO un environnement de manipulation de langage d'assemblage.

Différentes approches sont utilisées par les utilisateurs pour développer les applications hautes performances. Nous développons différents environnements pour quelques-unes de ces approches.

Ainsi le langage Matlab est souvent utilisé pour le développement rapide de prototypes de codes numériques. Toutefois, l'exécution par un interpréteur réduit nettement les performances. Les codes de production dérivés des codes numériques sont ensuite entièrement réécrits en langage Fortran. Cependant on perd à travers cette réécriture le parallélisme intrinsèque des fonctions et des opérateurs matriciels de haut niveau. Afin de sauvegarder ce parallélisme, nous avons choisi de développer le compilateur Menhir pour le langage Matlab.

L'arrivée des stations de travail multiprocesseur a banalisé l'usage des machines parallèles. De nombreux progiciels Fortran gagneraient à être portés sur ces architectures afin d'atteindre une vitesse élevée de calcul à un coût raisonnable. Le portage (parallélisation et amélioration de performance) d'applications sur machines hautes performances est une activité techniquement difficile faisant appel à beaucoup de savoir-faire. Aussi, dans l'outil de portage TSF que nous développons au dessus de l'environnement Foresys de Simulog, nous accélérons le portage grâce à l'utilisation conjointe de techniques issues de deux domaines : la parallélisation automatique et le raisonnement à partir de cas.

Les systèmes embarqués et à haute performance font un usage de plus en plus fréquent des technologies VLIW, DSP ou Risc. L'optimisation, l'étude de performance, l'analyse des codes nécessitent la mise en \oeuvre de méthodes adaptées aux spécificités de ces architectures, en particulier à l'exploitation du parallélisme d'instructions. Toutefois, l'écriture de tels outils requiert du programmeur un investissement significatif qui a peu de chance d'être réutilisable, compte tenu de la diminution de la durée de vie des composants. Le système SALTO que nous avons développé propose un environnement de manipulation de programmes en langage assembleur. Il a pour objectif de permettre l'écriture rapide de tous les outils manipulant du langage assembleur : ordonnanceur, optimiseur de code, simulateur, ..



previous up next contents
Précédent : Architectures de processeurs Remonter : Présentation et objectifs généraux Suivant : Communication dans les calculateurs parallèles