1 |
Approches fonctionnelles de la programmation parallèle et des méta-ordinateurs. Sémantiques, implantations et certification.Gava, Frédéric 12 December 2005 (has links) (PDF)
Certains problèmes nécessitent des performances que seules les machines massivement parallèles<br />ou les méta-ordinateurs peuvent offrir. L'écriture d'algorithmes pour ce type de machines demeure<br />plus difficile que pour celles strictement séquentielles et la conception de langages adaptés est un sujet de<br />recherche actif nonobstant la fréquente utilisation de la programmation concurrente. En effet, la conception<br />d'un langage de programmation est le résultat d'un compromis qui détermine l'équilibre entre les différentes<br />qualités du langage telles que l'expressivité, la sûreté, la prédiction des performances, l'efficacité ou<br />bien la simplicité de la sémantique.<br />Dans des travaux antérieurs à cette thèse, il a été entrepris d'approfondir la position intermédiaire que le<br />paradigme des patrons occupe. Toutefois il ne s'agissait pas de concevoir un ensemble a priori fixé d'opérations<br />puis de concevoir des méthodologies pour la prédiction des performances, mais de fixer un modèle<br />de parallélisme structuré (avec son modèle de coûts) puis de concevoir un ensemble universel d'opérations<br />permettant de programmer n'importe quel algorithme de ce modèle. L'objectif est donc le suivant : parvenir<br />à la conception de langages universels dans lesquels le programmeur peut se faire une idée du coût à partir<br />du code source.<br />Cette thèse s'inscrit dans le cadre du projet «CoordinAtion et Répartition des Applications Multiprocesseurs<br />en objective camL» (CARAML) de l'ACI GRID dont l'objectif était le développement de bibliothèques<br />pour le calcul haute-performance et globalisé autour du langage OCaml. Ce projet était organisé en trois<br />phases successives : sûreté et opérations data-parallèles irrégulières mono-utilisateur ; opérations de multitraitement<br />data-parallèle ; opérations globalisées pour la programmation de grilles de calcul.<br />Ce tapuscrit est organisé en 3 parties correspondant chacune aux contributions de l'auteur dans chacune<br />des phases du projet CARAML : une étude sémantique d'un langage fonctionnel pour la programmationBSP<br />et la certification des programmes écrits dans ce langage ; une présentation d'une primitive de composition<br />parallèle (et qui permet aussi la programmation d'algorithmes «diviser-pour-régner» parallèles), un exemple<br />d'application via l'utilisation et l'implantation de structures de données parallèles et une extension pour les<br />entrées/sorties parallèles en BSML ; l'adaption du langage pour le méta-calcul.
|
Page generated in 0.1632 seconds