Page de Garde

Conception d'une machine orienté fonction

Type doc. :

Thèses / mémoires

Langue :

Français

Année de soutenance:

1988
Voir Plus

Afficher le Résumé

Cette these etudie la viabilite d'un systeme de programmation a fiots de donnees pour la programmation fonctionnelle. Cette etude nous a conduit a dresser le modele de vonneumann face aux architectures paralleles qui ont enregistré une grande evolution. Nous rnontrons la difficulte d'adapter le modele sequentiel aux architectures paralleles pour beneficier de Ieur principal apport : le oarallelisme. A l'oppose des langages imperatifs et séquentiels, le style fonctionnel est fort apprecie pour la programmation de ces nouvelles architectures. Nous decrivons les caracteristiques de ce mode de programmation : méthode d'evaluation, structure du code ainsi que les schemas d'execution des programmes fonctionnels. Bien entendu, %'execution des programmes est indissociable de |'architecture hote. La diversité des architectures pour la programmation fonctionnelle, que nous decrirons au chapitre 3, met en valeur la souplesse de la rnise en oeuvre du style fonctionnel. Ce dernier possede des propriétes faisant de lui un candidat potentiel pour le mode d'evaluation parallele des programmes. L'exécution d'un programme correspond a la propagation de données a travers les fonctions qui composent le programme. Ce concept de flots de données (data flow) sera defini comme un formalisme simple mais puissant pour la description du calcul parallele. A l'instar de tous les systemes a flots de données, nous definissons notre modele a flots de données a l'aide d'opérateurs de base qui permettront de constituer des graphes de programme. Ces notations graphiques seront adoptees comme un interface entre le langage utilise et l'architecture a flots de données. On donnera alors un algorithme de traduction des programmes du langage sans variable Graal en graphes de programme equivalents. Nos graphes de programme sont homogenes : ils possedent tous une seule entree et une seule sortie. C'est une traduction du concept de fonction qui a chaque element du domaine associe un unique element du codomaine. Nous montrerons que le choix du langage a ete justifie en se conformant aux regles qui regissent la definition d'un langage a flots de données (Ackermann Nous montrons au chapitre 7 que ces graphes de programme sont effectivement calculables, cela assure la calculabilité des programmes Graal dans un environnement a flots de données et revient a modéliser les graphes de programme par des réseaux de Petri a terminaison propre. L'exécution des programmes dans un environnement a flots de données nous améne a définir une architecture a flots ole données dont nous donnerons la description de chacune de ses composantes. Le processus d'assortiment qui est l'élément cié de toute architecture a flots de données, sera décrit par un processus simple car il traduit le fonctionnement dynamique d'un opérateur de base appelé jonction. Ce dernier constituera le mécanisme d'activation de fonction. Cette architecture est fondée sur le principe de communication par paquets. On donnera l'algorithme de traduction de nos graphes de programme en collections de paquets d'opération qui constitueront, par la suite, le stock d'activités de notre machine destiné a étre exécuté. Toute implantation a flots de données dynamique nécessite une expansion des graphes de programme, nous avons préféré assurer la réentrance des graphes de programme a la recopie. Ce choix sera mis en oeuvre a l'aide de la notion de graphe nommé et du mécanisme de coloriage de données. Le coloriage peut étre implanté par un compteur sans avoir recours a des informations supplémentaires telles que le nom de l'instruction invoquée, le niveau d'activation etc... Les deux mécanismes (coloriage et graphe nommé) s'averent idéaux pour la gestion des continuations du style fonctionnel et assurent une prise en charge automatique du parallélisme temporel (pipeline). Nous décrirons au chapitre 10 un émulateur de l'architecture que nous proposons. Les programmes en langage C sont donnés en annexe. Nous donnerons quelques exemples pour matérialiser la vision d'un systéme a flots de données et en évaluer autant que possible les performances.



N° Bulletin Date / Année de parution Titre N° Spécial Sommaire
Cote Localisation Type de Support Type de Prêt Statut Date de Restitution Prévue Réservation
Belkhir, A. et al. (1988). Conception d'une machine orienté fonction (T.h.) . Paris.