Présentation du projet CARAML (2002-2004)

ACI Globalisation des ressources informatiques et des données

ACI Grid

CARAML = CoordinAtion et Répartition des Applications Multiprocesseurs en objective camL

Description courte du projet

Développement de bibliothèques pour le calcul haute-performance et globalisé autour du langage CAML de l'INRIA, dans son dialecte Objective Caml ou OCaml. Bibliothèques de primitives parallèles et globalisées. Bibliothèques applicatives orientées SGBD et calcul numérique. Exemples d'applications à la simulation moléculaire .

Contexte et motivation

CAML est un langage de programmation de haut niveau qui offre de nombreux avantages pour le développement de logiciel : programmation fonctionnelle et impérative, typage fort implicite, gestion dynamique de la mémoire, implantations efficaces et nombreuses bibliothèques. Le dialecte OCaml y ajoute un système de programmation orientée objet ainsi que plusieurs nouveautés. Le développement du langage par l'INRIA et son utilisation répandue en recherche et en enseignement en font un vecteur idéal pour l'avancement et la popularisation des technologies du logiciel parallèle et réparti.

Le paradigme GRID, fondé sur la fusion de ces deux domaines de l'informatique, se diffusera rapidement dans l'enseignement et la recherche en informatique si on intègre à OCaml les fonctionnalités appropriées : multi-programmation de systèmes data-parallèles, algorithmes en mémoire répartie et disques répartis, équilibrage de charge, répartition géographique des applications, tolérance aux pannes. Le projet CARAML propose de développer ces fonctionnalités sous forme de bibliothèques simples d'utilisation et maximisant les performances du matériel. Certaines de ces fonctionnalités sont déjà annoncées dans des produit comme le Sychron Resource Manager de Sychron Ltd, pour ne nommer que ce système très récent. Les recherches fondamentales menées en France nous permettent de les généraliser et les intégrer à du logiciel gratuit et d'en acquérir la maîtrise au sein de la recherche publique nationale.

L'utilité du projet est d'alimenter l'enseignement et la recherche par des outils logiciels pertinents, simples d'utilisation et bien modélisés. Les fonctionnalités proposées par CARAML, bien qu'individuellement présentes dans la littérature scientifique, ne sont actuellement réunies par aucun système. Il existe par exemple : des systèmes parallèles tolérants aux pannes mais restreints aux calculs asynchrones sans communications internes, des systèmes de programmation parallèle/répartie fonctionnelle sans modèle de performance ou sans globalisation, etc. L'originalité du projet est de proposer une intégration de la programmation déclarative, parallèle et concurrente dans un cadre de gestion dynamique des performances, d'extensibilité aux grands systèmes et de tolérance aux pannes.