DMML: Implémentation et Algorithmes

Introduction

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.

Le stage

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:

Organisation

Références

  1. Xavier Leroy. The Objective Caml System 3.07, 2003. Web pages at http://www.ocaml.org
  2. F. Loulergue. BSlambda_p: Functional BSP Programs on Enumerated Vectors. In J. Kazuki, editor, International Symposium on High Performance Computing, number 1940 in Lecture Notes in Computer Science, pages 355--363. Springer, October 2000.
  3. F. Loulergue. Implementation of a Functional Bulk Synchronous Parallel Programming Library. In 14th IASTED International Conference on Parallel and Distributed Computing Systems, pages 452--457. ACTA Press, 2002.
  4. F. Gava. Deparmental Metacomputing ML: Cost model, Design and Implementation. International Conference on Computational Science (ICCS 2004), Springer Verlag, 2004
  5. F. Loulergue, G. Hains, and C. Foisy. A Calculus of Functional BSP Programs. Science of Computer Programming, 37(1-3):253--277, 2000.
  6. W. F. McColl. Scalability, portability and predictability: The BSP approach to parallel programming. Future Generation Computer Systems, 12:265--272, 1996.
  7. D. B. Skillicorn, J. M. D. Hill, and W. F. McColl. Questions and Answers about BSP. Scientific Programming, 6(3), 1997.