![]()
Précédent : Architectures de processeurs
Remonter : Présentation et objectifs généraux
Suivant : Communication dans les calculateurs
parallèles
Mots clés : Matlab, programmation parallèle, parallélisation automatique, portage d'applications, optimisation .
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
uvre 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, ..