2023-05839 - Temporary scientific engineer / Scientific computing / Distributed and High Performance Computing / Graduate degree or equivalent

Contract type : Fixed-term contract

Level of qualifications required : Graduate degree or equivalent

Other valued qualifications : PhD

Fonction : Temporary scientific engineer



The software development project is part of a collaboration between the POEMS and ALPINES teams, from Inria Saclay and Paris respectively, around the Htool library and whose goal is to provide fast and efficient methods for solving dense linear systems. The objective of this project is to write a parallel implementation of the approximate factorization of hierarchical matrices in the Htool library using task-based parallelism. The application is to accelerate the solution of dense linear systems via domain decomposition methods.


Unité de Mathématiques Appliquées (UMA), ENSTA Paris, 828, Boulevard des Maréchaux, 91762 Palaiseau, France.
Two years, starting after April 2023.
  • Pierre Marchand, POEMS, UMA, ENSTA Paris
  • Pierre-Henri Tournier, ALPINES, LJLL, Sorbonne Université



The recruited person will propose a parallel implementation of an approximate factorization method for solving dense linear systems in the Htool library.

The chosen method will be based on hierarchical matrices associated with low rank approximations. The objective is to accelerate the solution of dense systems via domain decomposition methods. The latter are based on the resolution of smaller local problems, most often via factorizations that we seek here to parallelize by using task parallelism.

Initially, the recruited person will be asked to familiarize themself with the Htool library, by adding for example a new type of low rank approximation which is a variation of a method already implemented. Moreover, to apprehend the techniques of task-based parallelism, they will propose a dense LU factorization parallelized with OpenMP (which has since version 4 a task-based parallelism model with dependency). It will also be possible to compare with other task-based parallelism frameworks such as StarPU or OmpSs.

Afterwards, the objective will be to propose implementations of the different operations with hierarchical matrices using task parallelism: assembly and matrix-vector product to start with, in order to compare with the current parallel implementations of Htool, and then the LU factorization.

It is expected that each implementation will be validated by scaling tests, as well as comparisons between different task parallelism frameworks.

Main activities

Main activities:

  • Bibliographic work on algorithms for task-based parallelization in the context of hierarchical matrices
  • Develop these algorithms in the Htool library
  • Test, modify until validated

Additional activities:

  • Write the documentation of the new features
  • Present the progress of the work to the development team 



Person with skills in modern C++ (at least C++11), and experience in writing parallelized code in the context of scientific computing, ideally task-based parallelism, or distributed memory parallelism (MPI) or shared memory parallelism (OpenMP). In the latter case, this project will be an opportunity to learn about task-based parallelism.

Project IT management skills are also expected, including the use of Git and CMake, as well as a willingness to work in a team and to learn. Good written and oral presentation skills are important.

Benefits package

  • Subsidized meals
  • Partial reimbursement of public transport costs
  • Leave: 7 weeks of annual leave + 10 extra days off due to RTT (statutory reduction in working hours) + possibility of exceptional leave (sick children, moving home, etc.)
  • Possibility of teleworking (after 6 months of employment) and flexible organization of working hours
  • Professional equipment available (videoconferencing, loan of computer equipment, etc.)
  • Social, cultural and sports events and activities
  • Access to vocational training
  • Social security coverage