2022-04912 - Software engineer, specialized in scientific computing and HPC (F/M)

Contract type : Fixed-term contract

Level of qualifications required : Graduate degree or equivalent

Other valued qualifications : PhD

Fonction : Temporary scientific engineer

About the research centre or Inria department

The Inria Lille - Nord Europe research center, created in 2008, employs 360 people including 305 scientists in 15 research teams. Recognized for its strong involvement in the socio-economic development of the Hauts-De-France region, the Inria Lille - Nord Europe research center pursues a close relationship with large companies and SMEs. By promoting synergies between researchers and industrialists, Inria participates in the transfer of skills and expertise in digital technologies and provides access to the best European and international research for the benefit of innovation and companies, particularly in the region.

For more than 10 years, the Inria Lille - Nord Europe center has been located at the heart of the university and scientific ecosystem in Lille, as well as at the heart of Frenchtech, with a technology showroom based on avenue de Bretagne in Lille, on the site of economic excellence dedicated to information and communication technologies (ICT) that is EuraTechnologies.

Context

Position:

The RAPSODI team is currently recruiting the new ParaSkel++ lead developer for a fixed-term contract of 2 years.

Scientific context:

At Inria Lille, the RAPSODI team works in the broad theme of numerical simulation. RAPSODI researchers devise, mathematically analyze, and practically implement numerical schemes for the approximation of dissipative phenomena described by time-dependent, often nonlinear PDEs. RAPSODI researchers investigate in particular high-order schemes on general meshes. High-order schemes, through the use of high-degree polynomials, enable to improve on both the accuracy and the efficiency of the approximation. In turn, the support of general meshes, besides being sometimes an inherent constraint from the problem at hand (for instance in subsurface modeling), turns out to be a major asset for adaptive mesh refinement/coarsening, or to handle embedded interfaces. By general meshes, we have in mind (unstructured) 2/3D grids with arbitrary polygonal/polyhedral (polytopal for short) cells. When simulating a time-evolving nonlinear model with a high-order scheme, one has to solve an important number of linear systems (think of a linearization loop inside of a time loop), of possibly very large size (the higher the order, the larger the size of the linear systems). One thus needs an optimized implementation for the simulation to remain tractable. Whereas well-established very efficient solutions are available for the finite element (FE) approximation of PDEs on standard mesh families (simplices and cuboids, essentially), like FEniCS, Netgen/NGSolve, or FreeFEM++ to cite a few, the landscape of polytopal softwares (i.e. that handle general meshes and implement the related schemes) is much more sparse. One of the main reasons behind, despite the fact that the major breakthroughs in high-order polytopal schemes have only been achieved very recently, is probably the lack of good polytopal meshers, as well as of a consensus within the community on the mesh formats. Nevertheless, the development of arbitrary-order polytopal schemes is currently a very active research field, and the need for adapted optimized platforms to implement them is important.

Assignment

Objectives:

Since 2020, the RAPSODI team has been developing the software ParaSkel++. ParaSkel++ is a C++ platform for the high-performance, arbitrary-order, 2/3D numerical approximation of PDEs on general polytopal meshes using skeletal Galerkin methods. Skeletal methods form a vast family of numerical schemes for the approximation of PDEs that satisfy certain building principles. The very structure underpinning skeletal methods grants them the property of being amenable to static condensation, i.e. locally to each mesh cell, the cell unknowns can be eliminated in terms of the local skeleton unknowns by means of a Schur complement. The final global system to solve thus writes in terms of the skeleton unknowns only, whence the appellation “skeletal” for the method. The skeletal family encompasses in particular standard FE methods, as well as the more recent virtual-like Galerkin methods (VEM, HHO, HDG. . . ) [1]. It does not contain (plain vanilla) DG methods. The aim of the ParaSkel++ project is to offer a high-performance factorized C++ architecture for the implementation of arbitrary-order skeletal methods on general 2/3D polytopal meshes. Since August 2021, a first version (v1) of the platform is operational and freely distributed under LGPL [2], featuring a sequential implementation of all the main skeletal methods on toy linear problems. Eventually, the ParaSkel++ platform is expected to possess five main assets with respect to other codes of the same nature from the community: (i) a unified 2/3D implementation, (ii) the native support of any type of unknowns (vertex-, edge-, face-, and cell-based), (iii) an ultra-factorized architecture (with common-to-all-methods local elimination and global assembly steps), (iv) the use of efficient quadrature formulas on general polytopes, and (v) the embedding of parallel computation facilities.

 

[1] S. Lemaire, Bridging the Hybrid High-Order and Virtual Element methods, IMA J. Numer. Anal., 41(1):549–593, 2021.

[2] L. Beaude and S. Lemaire, ParaSkel++: a C++ platform for the high-performance, arbitrary-order, 2/3D numerical approximation of PDEs on general polytopal meshes using skeletal Galerkin methods, v1, Aug. 2021, Software Heritage deposit accessible from hal-03517921.

Main activities

Missions:

The successful engineer will be assigned 2 main development tasks in ParaSkel++.


(1) Parallelization of the code. A first (simple) task will consist in parallelizing the local pre-computation step. A second (more involved) task will concern the linear solver, for which parallelization solutions will be investigated both to speed up the resolution and to circumvent memory limitations. Parallelization will first be studied on shared memory (using OpenMP), and in a second time on distributed memory (using MPI). Scalability tests will be carried out to validate the approaches.


(2) Implementation of efficient quadrature formulas on general polytopes. The aim is to minimize, for a given degree of exactness of the quadrature, the number of evaluations of the function to integrate. For the moment, in ParaSkel++ (as in most of the existing codes), a polytopal cell is sub-divided into simplices or pyramids (subtessellation), and the function is integrated over each subcell using standard formulas. A more efficient approach to polytopal quadrature, that avoids subtessellation, has been introduced recently in [3]. This approach will be implemented and tested in ParaSkel++.


The successful engineer will interact with the researchers of the team. He/She will also participate to the conception of an industry-targeted demonstrator for the ParaSkel++ software. He/She will finally present his/her work in workshops or conferences.

 

[3] E. B. Chin, J. B. Lasserre, and N. Sukumar, Numerical integration of homogeneous functions on convex and nonconvex polygons and polyhedra, Comput. Mech., 56(6):967–981, 2015.

Skills

The successful engineer will (i) have an excellent knowledge of C++, especially of the notions of object, inheritance and generic programming, as well as of the standard scientific computing libraries and softwares, (ii) have solid notions of HPC, in particular of the basic commands in OpenMP and MPI, (iii) have a good level in (technical) English, (iv) be autonomous in his/her work and have good
communication skills. A background in applied mathematics/simulation and/or a first experience in software development (with version control and continuous integration) would be a clear advantage.

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

Remuneration

According to the profile