Research
My Phd topic:
Functional abstraction for programming Multi-level architectures:
Formalisation and implementation
under the direction of Frédéric GAVA and Julien TESSON
2018-… | R&D: | Research and Development engineer at Nomadic Labs in Paris, France |
2016-2018 | ATER: | Temporary Assistant Professor at the Laboratoire d'Informatique Fondamentale d'Orléans in Orléans University, France |
2013-2017 | Phd: | Functional abstraction for programming Multi-level architectures (Université Paris Est) |
2011-2013 | MSc: | Visualisation, Image processing and Performances (Université Orléans) |
2010-2011 | BSc: | Computer Sciences (Université Orléans) |
For more information, take a look at my CV(English)/CV(Français).
Publications
Journal:
Programming BSP and Multi-BSP algorithms in ML V. Allombert, F. Gava The Journal of Supercomputing (J. Supercomput. 2019) [Link] The BSML and Multi-ML languages have been designed for programming in ML algorithms of the respectively bsp and Multi-BSP bridging models. Multi-BSP is an extension of the well-know BSP model by taking into account the different levels of networks and memories of modern hierarchical architectures. This is a new model, as well as Multi-ML, while BSP and BSML have been used for a long time in many different domains. But designing and programming Multi-BSP algorithms is intuitively more complex than with BSP. One can ask if it is beneficial to rewrite BSP algorithms using the Multi-BSP model? In this paper, we thus investigate the pro and cons of the aforementioned models and languages by experimenting with them on different typical applications. We use a methodology to measure the level of difficulty of writing code and we also benchmark them in order to show if writing Multi-ML code is worth the effort.
Multi-ML: Programming Multi-BSP Algorithms in ML V. Allombert, F. Gava, J. Tesson International Journal of Parallel Programming (IJPP 2017) [HAL] BSP is a bridging model between abstract execution and concrete parallel systems. Structure and abstraction brought by BSP allow to have portable parallel programs with scalable performance predictions, without dealing with low-level details of architectures. In the past, we designed BSML for programming BSP algorithms in ML. However, the simplicity of the BSP model does not fit the complexity of today’s hierarchical architectures such as clusters of machines with multiple multi-core processors. The Multi-BSP model is an extension of the BSP model which brings a tree-based view of nested components of hierarchical architectures. To program Multi-BSP algorithms in ML, we propose the Multi-ML language as an extension of BSML where a specific kind of recursion is used to go through a hierarchy of computing nodes. We define a formal semantics of the language and present preliminary experiments which show performance improvements with respect to BSML.
International Conferences:
Introduction to the Tezos Blockchain (Tutorial) V. Allombert, M. Bourgoin, J. Tesson International Conference on High Performance Computing and Simulation (HPCS 2019) [Link] Tezos is an innovative blockchain that improves on several aspects compared to more established blockchains. It offers an original proof-of-stake consensus algorithm and can be used as a decentralized smart contract platform. It has the capacity to amend its own economic protocol through a voting mechanism and focuses on formal methods to improve safety
Toward performance prediction for Multi-BSP programs in ML V. Allombert, F. Gava, J. Tesson 18th International Conference on Algorithms and Architectures for Parallel Processing ( ICA3PP 2018) [Link] BSML and Multi-ML are functional parallel programming languages “à la ML” based of the respectively the BSP and Multi-BSP bridging models. Multi-BSP extends BSP to take into account hierarchical architectures. For both models, it is possible to predict the performances of algorithms thanks to embedded cost models. To do so, we propose formal a operational semantics with cost annotations for the two aforementioned languages. This work has been done in a incremental manner. First we recall the cost semantics of core-ML language. Then, we adapt it to BSML and we adapt it to multi-ML. It is then possible to evaluate the cost of a program following the annotated semantics. Finally, we compare the theoretical approach with the current implementation on a code example.
An ML implementation of the MULTI-BSP model V. Allombert, F. Gava International Conference on High Performance Computing and Simulation (HPCS 2018) [Link] We have designed a parallel language called MULTI-ML for programming MULTI-BSP algorithms in ML. The MULTI-BSP model provides a tree-based view of nested components of hierarchical architectures. The structure and abstraction brought by MULTI-BSP allows for portable parallel programs with scalable performance predictions, without dealing with low-level details of architecture. The MULTI-ML language is essentially based on the concept of multi-functions which are recursive functions used to execute perform recursions on the nested sub-components through the MULTI-BSP (hierarchical) architecture. In this paper we design a generic compilation scheme of the MULTI-ML language dedicated to parallel machines performing data exchanges using synchronous requests, derived from any ML compilation. This ensures that the implementation follows the semantics, allowing greater confidence in the safety of execution.
Parallel Programming with OCaml: A Tutorial (Tutorial) V. Allombert, M. Bourgoin, F. Loulergue International Conference on High Performance Computing and Simulation (HPCS 2018) [Link] OCaml is a multi-paradigm (functional, imperative, object-oriented) high level sequential language. Types are stati-cally inferred by the compiler and the type system is expressive and strong. These features make OCaml a very productive language for developing efficient and safe programs. In this tutorial we present three frameworks for using OCaml to program scalable parallel architectures: BSML, Multi-ML and Spoc.
A formal semantics of the Multi-ML language V. Allombert, F. Gava International Symposium on Parallel and Distributed Computing (ISPDC 2018) [Link] In the context of high performance computing, it is important to avoid indeterminism and dead-locks. MULTI-ML is a functional parallel programming language “à la ML ”, designed to program hierarchical architectures in a structured way. It is based of the MULTI-BSP bridging model. To ensure that a program “cannot go wrong”, we first need to define how a program “goes”. To do so, we propose a formal operational semantics of the MULTI-ML language to ensure the properties of the MULTI-BSP model. We first describe a core-language and then introduce the big step’s semantics evaluation rules. Then, we propose a set of evaluation rules that describe the behaviour of the MULTI-ML language. The memory model is also precisely defined, as the MULTI-BSP model deals with multiple level of nested memories.
An Out-of-core GPU Approach for Accelerating Geostatistical Interpolation V. Allombert, D. Michea, F. Dupros, C. Bellier, B. Bourgine, H. Aochi, S. Jubertie International Conference on Computational Science. 2014. Cairns, Australia. [Link] Geostatistical methods provide a powerful tool to understand the complexity of data arising from Earth sciences. Since the mid 70's, this numerical approach is widely used to understand the spatial variation of natural phenomena in various domains like Oil and Gas, Mining or Environmental Industries. Considering the huge amount of data available, standard implementations of these numerical methods are not efficient enough to tackle current challenges in geosciences. Moreover, most of the software packages available for geostatisticians are designed for a usage on a desktop computer due to the trial and error procedure used during the interpolation. The Geological Data Management (GDM) software package developed by the French geological survey (BRGM) is widely used to build reliable three-dimensional geological models that require a large amount of memory and computing resources. Considering the most time-consuming phase of kriging methodology, we introduce an efficient out-of-core algorithm that fully benefits from graphics cards acceleration on desktop computer. This way we are able to accelerate kriging on GPU with data 4 times bigger than a classical in-core GPU algorithm, with a limited loss of performances.
Talk at an International Conference without Proceedings
Programming BSP and Multi-BSP algorithms in ML V. Allombert, F. Gava 11th International Symposium on High-Level Parallel Programming and Applications (HLPP 2018) [Link] The BSML and Multi-ML languages have been designed for programming in ML algorithms of the respectively bsp and Multi-BSP bridging models. Multi-BSP is an extension of the well-know BSP model by taking into account the different levels of networks and memories of modern hierarchical architectures. This is a new model, as well as Multi-ML, while BSP and BSML have been used for a long time in many different domains. But designing and programming Multi-BSP algorithms is intuitively more complex than with BSP. One can ask if it is beneficial to rewrite BSP algorithms using the Multi-BSP model? In this paper, we thus investigate the pro and cons of the aforementioned models and languages by experimenting with them on different typical applications. We use a methodology to measure the level of difficulty of writing code and we also benchmark them in order to show if writing Multi-ML code is worth the effort.
International Workshops
Multi-ML: Programming Multi-BSP Algorithms in ML V. Allombert, F. Gava, J. Tesson 8th International Symposium on High-Level Parallel Programming and Applications (HLPP 2015) [Link] [PDF] BSP is a bridging model between abstract execution and concrete parallel systems. Structure and abstraction brought by BSP allow to have portable parallel programs with scalable performance predictions, without dealing with low-level details of architectures. In the past, we designed BSML for programming BSP algorithms in ml. However, the simplicity of the BSP model does not fit the complexity of today’s hierarchical architectures such as clusters of machines with multiple multi-core processors. The multi-BSP model is an extension of the BSP model which brings a tree-based view of nested components of hierarchical architectures. To program multi-BSP algorithms in ml, we propose the multi-ml language as an extension of BSML where a specific kind of recursion is used to go through a hierarchy of computing nodes. We define a formal semantics of the language and present preliminary experiments which show performance improvements with respect to BSML.
Thesis:
Functional abstraction for programming Multi-level architectures: Formalisation and implementation 7 July 2017. Paris. France [PDF] [slides] [jury] From personal computers using an increasing number of cores, to supercomputers having millions of computing units, parallel architectures are the current standard. The high performance architectures are usually referenced to as hierarchical, as they are composed from clusters of multi-processors of multi-cores. Programming such architectures is known to be notoriously difficult. Writing parallel programs is, most of the time, difficult for both the algorithmic and the implementation phase. To answer those concerns, many structured models and languages were proposed in order to increase both expressiveness and efficiency. Among other models, Multi-BSP is a bridging model dedicated to hierarchical architecture that ensures efficiency, execution safety, scalability and cost prediction. It is an extension of the well known BSP model that handles flat architectures. In this thesis we introduce the Multi-ML language, which allows programming Multi-BSP algorithms “à la ML” and thus, guarantees the properties of the Multi-BSP model and the execution safety, thanks to a ml type system. To deal with the multi-level execution model of Multi-ML, we defined formal semantics which describe the valid evaluation of an expression. To ensure the execution safety of Multi-ML programs, we also propose a typing system that preserves replicated coherence. An abstract machine is defined to formally describe the evaluation of a Multi-ML program on a Multi-BSP architecture. An implementation of the language is available as a compilation toolchain. It is thus possible to generate an efficient parallel code from a program written in Multi-ML and execute it on any hierarchical machine.
Acknowledgement:
Towards a self-consistent orbital evolution for EMRIs A. Spallicci, P. Ritter, S. Jubertie, S. Cordier, S. Aoudia IX Lisa Conference,Proceedings by the Astronomical Society of the Pacific Conference Serie. Paris. [Link] We intend to develop part of the theoretical tools needed for the detection of gravitational waves coming from the capture of a compact object, 1-100 solar masses, by a Supermassive Black Hole, up to a 10 billion solar masses, located at the centre of most galaxies. The analysis of the accretion activity unveils the star population around the galactic nuclei, and tests the physics of black holes and general relativity. The captured small mass is considered a probe of the gravitational field of the massive body, allowing a precise measurement of the particle motion up to the final absorption. The knowledge of the gravitational signal, strongly affected by the self-force - the orbital displacement due to the captured mass and the emitted radiation - is imperative for a successful detection. The results include a strategy for wave equations with a singular source term for all type of orbits. We are now tackling the evolution problem, first for radial fall in Regge- Wheeler gauge, and later for generic orbits in the harmonic or de Donder gauge for Schwarzschild-Droste black holes. In the Extreme Mass Ratio Inspiral, the determination of the orbital evolution demands that the motion of the small mass be continuously corrected by the self-force, i.e. the self-consistent evolution. At each of the integration steps, the self-force must be computed over an adequate number of modes; further, a differential-integral system of general relativistic equations is to be solved and the outputs regularised for suppressing divergences. Finally, for the provision of the computational power, parallelisation is under examination.
Teaching
2019-2020 | High Performance Programming | CM/TP | Master 2 | 10h |
2017-2018 | High Performance Programming | CM/TD/TP | Doct. | 6h |
2017-2018 | Multitier Programming | TP | Licence 3 | 20h |
2017-2018 | Data Bases | TD | Master 1 | 16h |
2017-2018 | Internship | Licence 3 | 8h | |
2016-2018 | Advanced Visualisation | CM/TD/TP | Master 2 | 39h |
2016-2018 | Operating Systems | CTD | Licence 1 | 60h |
2016-2018 | Algorithmic and Programming | TD | Licence 1 | 186h |
2016-2017 | Distributed Systems | TD | Master 1 | 33h |
2016-2017 | Application Design | TP | Licence 1 | 12h |
2016-2017 | Internship | Master 2 | 4h | |
2015-2016 | C Programming | TD | Licence 2 | 24h |
2015-2016 | Java Programming | TD | Licence 2 | 16.5h |
2014-2015 | Data Bases | TD | Licence 3 | 15h |
2014-2015 | Low-level Operating Systems | TD | Licence 2 | 24h |
2013-2015 | Computers Architectures | TD | Licence 2 | 72h |
2013-2015 | Experimental Algorithms | TD | Licence 1 | 50h |
2013-2014 | Functional Programming | TD | Licence 2 | 3h |
2012-2013 | Algorithmic and Programming | TP | Licence 2 | 20h |
Total: | 618.5h |
About Me
The Multi-ML project.
Past events:
2019: HPCS (Tutorial session), Dublin, Ireland 2018: GDR LaMHA, Paris, France 2018: HPCS, Orléans, France 2018: HPCS (Tutorial session), Orléans, France 2018: HLPP, Orléans, France 2018: ISPDC, Geneva, Switzerland 2018: LIP - Avalon seminar, Lyon, France 2017: GDR LaMHA, Orléans, France 2016: GDR LTP, Paris, France 2016: GDR GPL, Besançon, France 2016: SIAM-PP16, Paris, France 2015: BSPSP, Orléans, France 2015: HLPP, Pisa, Italy 2015: GDR GPL, Bordeaux, France 2015: LACL seminar, Créteil, France 2015: LaMHA, Créteil, France 2014: ParaPhrase, Dublin, Ireland 2014: EJCP, Rennes, FranceProgram commitee:
- ICCS 2019: International Conference on Computational Science (ICCS 2019) - Faro, Algarve, Portugal
- NGPS 2019: Next Generation Programming Paradigms and Systems (SAC 2019), Limassol, Cyprus
- APPMM 2018: Advances in Parallel Programming Models and Frameworks for the Multi-/Many-core Era (Part of HPCS 2018), Orléans, France
- ScalCom 2018: International Conference on Scalable Computing and Communications (ScalCom2018), Guangzhou, China
Referee:
- ParCo 2021: Parallel Computing Conference, London, United Kingdom
- HLPP 2017: International Symposium on High-Level Parallel Programming and Applications, Valladolid, Spain
- ParCo 2017: Parallel Computing Conference, Bologna, Italy
Session chair:
- HPCS 2019: High Level Parallelism, Languages, Libraries, Programming Environments and Tools, Dublin, Ireland
- WEHA 2018: International Workshop on Exploitation of high performance Heterogeneous Architectures and Accelerators (Part of HPCS 2018), Orléans, France
Organization:
Contact
E-mail: | |
Address: | Bureau A11 (111-Rdc) LIFO - Bâtiment IIIA Rue Léonard de Vinci F-45067 ORLEANS Cedex 2 |