Contact the School of Informatics, Computing, and Cyber Systems
High-Level Parallel Programming
Principal Investigator
Frédéric Loulergue
Collaborators
Wadoud Bousdira (LIFO, Université d’Orléans, France), Virginia Niculescu and Babes Bolyai (University of Cluj-Napoca, Romania), Julien Tesson (LACL, Université Paris-Est Créteil, France)
Overview
If parallel programming is to become as widespread as sequential programming, the languages supporting it should incorporate all the standard abstraction mechanisms including higher order functions, recursion, pattern matching, etc. Yet for such languages to be practical scalable programming tools, abstraction should not come at the price of predictable performance. We have designed and are designed several programming languages and libraries that provide a very good tradeoff between programming productivity and execution efficiency.
The bulk synchronous parallel (BSP) computing paradigm demonstrates that programs explicitly written for a static number p of processors can have predictable execution costs on a wide variety of architectures. Our main libraries build on the BSP model.
We have obtained extensions of the lambda-calculus with BSP operations (BSlambda) basis for the design of a functional bulk synchronous parallel language (Bulk Synchronous Parallel ML or BSML). A library for the OCaml language, called BSML, has been designed. It implements all our flat BSP operations. Many extensions have been added to this core calculus. BSML was used to develop a parallel artificial intelligence application applied to finance.
OSL, the Orléans Skeleton Library provides a set of data parallel skeletons which follow the bulk synchronous parallel model of parallel computation. OSL is a library for C++ currently implemented on top of MPI and it uses meta-programming techniques to offer a good efficiency. Our goal is thus to provide an easy to use library for a widely used programming language and that allows simple reasoning about parallel performances based on a simple and portable cost model. OSL features unique skeletons such as a skeleton to handle exceptions.
Representative Publications
- Loulergue Frédéric, Wadoud Bousdira, and Julien Tesson. Calculating Parallel Programs in Coq using List Homomorphisms. In International Journal of Parallel Programming, 2016
- Loulergue Frédéric, Wadoud Bousdira, and Julien Tesson. Calcul de programmes parallèles avec Coq. In Nicolas Ollinger, editor, École des Jeunes Chercheurs en Informatique Mathématique, collection Alpha. CNRS Éditions, 2015
- Frédéric Loulergue, Virginia Niculescu, and Julien Tesson. Implementing powerlists with Bulk Synchronous Parallel ML. In SYNASC. IEEE, 2014
- Joeffrey Légaux, Sylvain Jubertie, and Frédéric Loulergue. Development Effort and Performance Trade-off in High-Level Parallel Programming. In International Conference on High Performance Computing and Simulation (HPCS). IEEE, 2014.
- Joeffrey Legaux, Zhenjiang Hu, Frédéric Loulergue, Kiminori Matsuzaki, and Julien Tesson. Programming with BSP Homomorphisms. In F. Wolf, B. Mohr, and D. Ney, editors, Euro-Par 2013 Parallel Processing, number 8097 in LNCS, pages 446-457. Springer, 2013