|
OCamlP3l est un compilateur de programmes Caml parallèles. Il fonctionne sous tout type d'Unix ; sous Windows, il faut utiliser l'émulation Cygwin.
Le parallélisme ajoute une dimension supplémentaire à la difficulté habituelle de la programmation des algorithmes. En effet, lorsqu'on écrit la version parallèle d'un programme correct dans sa version normale, on voit la plupart du temps apparaître de nouvelles erreurs. Ces erreurs spécifiques au parallélisme sont subtiles et particulièrement difficiles à éradiquer. Dans les approches classiques du parallélisme, ce point d'achoppement majeur tient au non déterminisme: les résultats des programmes sont aléatoires, d'une exécution à l'autre les résultats changent. La mise au point est un vrai cauchemar.
Face à cette difficulté, le système OcamlP3l apporte une solution élégante et théoriquement fondée. Il s'agit d'offrir au programmeur un ensemble de briques de base du parallélisme, les squelettes de parallélisme, dont le comportement de passage du séquentiel au parallélisme est parfaitement maîtrisé. Un programme écrit à l'aide des squelettes de parallélisme est automatiquement exécutable à la fois en version séquentielle et en version parallèle, selon l'interprétation des squelettes demandée par le programmeur. De plus, les deux versions du programme ont la même signification mathématique; donc les mêmes résultats; et la correction de l'un vaut donc pour l'autre.
Avec les squelettes de parallélisme, OcamlP3l offre une approche originale à la parallélisation de code dont les propriétés théoriques sont étonnamment efficaces en pratique.
Avec OcamlP3l, le langage support des squelettes de parallélisme est Objective Caml. Tous les outils de ce langage fonctionnel de haut niveau sont donc à la disposition du programmeur et la réalisation des applications en est facilitée.
L'étude théorique et l'implémentation des squelettes de parallélisme est le fruit d'une collaboration entre l'Université de Pise, l'INRIA et Paris 7.
Cette approche nouvelle du parallélisme est utilisée avec succès dans le domaine du calcul scientifique pour paralléliser une base de code numérique Fortran et C++.
Le manuel de l'utilisateur d'OCamlP3l est disponible en ligne.
Vous pouvez également télécharger le manuel en DVI, PS ou PDF.
Le manuel est actuellement en anglais uniquement, on attend des volontaires pour se charger de la traduction.
Les articles de recherche sur OCamlP3l.
Vous devez disposer de la version 3.09 du compilateur Objective Caml.
Si vous trouvez une erreur dans le logiciel, envoyez s'il vous plaît un
message à ocamlp3l-bugs at inria.fr
.
Si vous voulez contacter les implémenteurs (pour donner de nouvelles idées
ou des lignes de code), écrivez à ocamlp3l at inria.fr
.
La version 2.03 d'OCamlP3l a été développée durant les années 2003 à 2007 par
Roberto Di Cosmo (roberto at dicosmo.org),
Zheng Li (zli at pps.jussieu.fr),
Pierre Weis (Pierre.Weis at inria.fr),
Francois Clement (Francois.Clement at inria.fr).
Cette version d'OCamlP3l se fonde sur la première maquette du langage P3L développé en 1997 par
Roberto Di Cosmo (dicosmo at ens.fr),
Marco Danelutto (marcod at di.unipi.it),
Xavier Leroy (Xavier.Leroy at inria.fr),
Susanna Pelagatti (susanna at di.unipi.it).
Ce développement a été réalisé en particulier grâce à l'Action de Recherche Coopérative Moprosco.
OCamlP3l est écrit entièrement en Objective Caml.
Ce programme est un logiciel libre distribué sous licence GNU LGPL. Voir le fichier COPYING de la distribution.
Pierre Weis, François Clément.