Compilation optimisée d'un langage fonctionnel pour une machine parallèle à réduction de graphe
Disciplines:
Directors:
Abstract EN:
Pas de résumé disponible.
Abstract FR:
Cette thèse présente les mécanismes mis en œuvre pour compiler efficacement un langage fonctionnel non strict en un code combinatoire directement exécutable sur mars, un réducteur parallèle de graphes à mémoire partagée réalisé à l'ONERA-CERT. Nous décrivons d'abord brièvement les principes de fonctionnement de MaRS (langage fonctionnel, réduction parallèle de graphe, jeu de combinateurs indexes, architecture générale), ainsi que le point de départ de notre travail, un algorithme itératif permettant l'abstraction de toutes les variables en une seule passe. Nous montrons ensuite comment quelques modifications judicieusement apportées à cet algorithme d'abstraction améliorent de façon notable et même fondamentale la qualité du code généré. On diminue ainsi l'expansion dynamique et la taille du code; de plus, une gestion appropriée des différents modes d'évaluation permet une exploitation pertinente du parallélisme potentiel du programme, ainsi qu'une utilisation optimale des différentes ressources de la machine. Les mesures effectuées sur un simulateur de la machine mettent bien en évidence l'apport des optimisations proposées, et ce que ce soit en évaluation séquentielle ou en évaluation parallèle. Enfin, nous bâtissons un environnement logiciel permettant de gérer de façon incrémentielle les diverses dépendances existant entre les codes des différentes fonctions d'un programme. Les principes élaborés pour résoudre ce problème assez spécifique s'avèrent d'un intérêt beaucoup plus général.