Métaprogrammation fonctionnelle appliquée à la génération d'un DSL dédié à la programmation parallèle
Résumé
On décrit l'implémentation en MetaCaml d'un petit langage dédié (DSL) à la programmation parallèle. Le langage repose sur la notion de squelettes qui autorisent la spécification de programmes parallèles par simple composition de constructeurs de haut niveau encapsulant des schémas communs et récurrents de parallélisme. On montre comment les facilités de métaprogrammation offertes par MetaCaml permettent d'éliminer presque totalement le surcoût à l'exécution du code généré par rapport à une implantation du même programme écrite avec des primitives de bas niveau comme celles de mpi. Pour cela, la spécification haut niveau du programme est d'abord transformée en une représentation équivalente sous la forme d'un réseau de processus séquentiels communiquants puis cette représentation est utilisée pour générer dynamiquement le code exécuté par chaque processeur de la machine.
Domaines
Langage de programmation [cs.PL]Origine | Fichiers produits par l'(les) auteur(s) |
---|