Il n'est aujourd'hui plus pensable de programmer en assembleur et malgré
tous les essais et travaux effectués jusqu'à ce jour, la
parallélisation automatique de programmes séquentiels soulève
encore de trop nombreuses difficultés. Entre ces deux voies, entre
l'enfer et le paradis, on doit pouvoir trouver des langages qui répondent
aux besoins des utilisateurs, des outils qui ont les pieds sur Terre!
Le modèle de programmation data-parallèle a ouvert la
voie à un type de fraction plus abstrait et donc plus accessible,
en permettant à l'utilisateur d'écrire un code séquentiel
sur des données parallèles.
Mais on peut tenter d'aller plus loin, d'entrevoir un petit bout de paradis, en proposant un modèle plus abstrait. Plusieurs possibilités sont alors envisageables, le choix de PEI étant de proposer un langage clair basé sur le placement des valeurs (comme dans la plupart des langages data-parallèles) enrichi par un formalisme équationnel s'appuyant sur une sémantique bien définie. PEI permet ainsi la transformation de programmes et vise à aider l'utilisateur à générer du code parallèle certifié et optimisé.
Le présent rapport est issu de la thèse de Dr
S.Genaud intitulée Transformations de programmes PEI
: application au parallélisme de données. Il présente
dans un premier temps le formalisme PEI, puis montre
comment il est alors possible de transformer des programmes. Enfin, ce
type de langage n'est utilisable que s'il est possible de traduire les
programmes générés en des programmes de plus bas niveau
d'abstraction. Nous verrons de ce fait, dans une troisième partie,
comment traduire les énoncés PEI en programmes data-parallèles
(notamment en HPF), quelles sont les contraintes, les limites et les perspectives
de cette traduction.