Certains problèmes comme la simulation de phénomènes physiques ou chimiques ou la gestion de bases de données de grande taille nécessitent des performances que seules les machines massivement parallèles peuvent offrir. Leur programmation demeure néanmoins plus difficile que celle des machines séquentielles. La conception de langages adaptés est un sujet de recherche actif.
Le parallélisme de données est un paradigme de programmation parallèle dans lequel un programme décrit une séquence d'actions sur des tableaux à accès parallèle. Le modèle BSP [6, 7] vise à maximiser la portabilité des performances en ajoutant une notion de processus explicites au parallélisme de données. Un programme BSP est écrit en fonction du nombre de processeurs de l'architecture sur laquelle il s'exécute. Le modèle d'exécution BSP sépare synchronisation et communication et oblige les deux à être des opérations collectives. Il propose un modèle de coût fiable et simple permettant de prévoir les performances de façon réaliste et portable.
Le projet BSlambda/BSML a deux objectifs principaux : parvenir à des langages universels et dans lesquels le programmeur peut se faire une idée du coût à partir du code source. Cette dernière exigence nécessite que soient explicites dans les programmes les lieux du réseau statique de processeurs de la machine.
Le BSlambda-calcul [5, 2] est un lambda-calcul étendu par des opérations parallèle BSP qui s'avère confluent et universel pour les algorithmes BSP. La BSMLlib [3] est une implantation partielle de ces opérations sous forme d'une bibliothèque pour le langage Objective CAML [1]. Cette bibliothèque permet d'écrire des programmes parallèles BSP portable sur une grande variété d'architectures allant du PC à deux processeurs au systèmes massivement parallèle Cray comprenant plusieurs centaines de processeurs, en passant par des clusters de PC.
Les besoins de calcul sont tels qu'il est désormais nécessaire d'utiliser des réseaux de grappes ou de machines parallèles plutôt qu'une seule machine parallèle. Lorsque ces machines sont dans plusieurs services d'une même institution (en général elles sont connectées par un même réseau mais le réseau interne de chaque grappe peut varier d'une grappe à l'autre) ont parle de Departmental metacomputing. DMML ou Departmental Metacomputing ML [4] est une extension de ML pour ce type de programmation.
Les objectifs de ce stage sont de: