Categories
cdd highlight job

2-years fixed-term: Task-based programming for Kinetic Plasma simulations

Maison de la Simulation Laboratory is looking for a computer science specialist to explore task-based programming models in the Particle-in-Cell simulation code Smilei. The successful candidate will have a CEA contract of 2 years funded by the AIDAS project jointly launched by Forschungszentrum Jülich (FZJ) in Germany and CEA in France. This project aims at stimulating active collaborations in artificial intelligence, data analytics and scalable simulations between the two countries.

High performance computing specialist

2-years fixed-term research-engineer or postdoc contract at Maison de la Simulation, CEA Saclay

Contact: Mathieu Lobet, CEA Researcher-Engineer, mathieu.lobet@cea.fr
Location: Maison de la Simulation, bât. 565, CEA Saclay, 91191 Gif-sur-Yvette Cedex
Employer: CEA Saclay, 91191 Gif-sur-Yvette Cedex
Salary: Based on CEA salary grid, typically in the 35k€-40k€ gross yearly range
Duration: 2 years starting in November 2022
Start of contract: end of 2022

Description

Maison de la Simulation Laboratory is looking for a computer science specialist to explore task-based programming models in the Particle-in-Cell simulation code Smilei. The successful candidate will have a CEA contract of 2 years funded by the AIDAS project jointly launched by Forschungszentrum Jülich (FZJ) in Germany and CEA in France. This project aims at stimulating active collaborations in artificial intelligence, data analytics and scalable simulations between the two countries.

Context

Task-based programming is a promising parallelism method that consists on dividing application workload and successive computation phases into inter-dependent pieces called tasks. The structure of the code can thus be represented by a task graph. A runtime scheduler decides when each tasks is executed based on available resources (CPU cores, GPU units) and dependencies. This asynchronous parallelized execution speeds up application with important load imbalance, helps to reduce idle resources, enable to adapt to many kind of computing architectures (heterogeneity, big.LITTLE architectures) and enable easier overlapping between different application phases (computation, communication, outputs, etc). Nonetheless, task-based programming often requires a rethink of how parallelism is designed, especially if there are strong dependencies and memory races.

Smilei (https://smileipic.github.io/Smilei/) is an open-source and parallel scientific application developed to simulate a wide range of kinetic plasma scenarios: laser-plasma interaction, particle acceleration, laboratory astrophysics, fusion energy and more. This code is based on the electromagnetic Particle-In-Cell (PIC) extended with many physical models. The code was initially parallelized using MPI and OpenMP and is currently ported to GPU. An initial exploration (https://doi.org/10.1145/3539781.3539788) of task-based methods in Smilei has demonstrated the relevance of such a model for the PIC method using several libraries: OpenMP task, Eventify (developed at Jülich Supercomputing Center) and OMPSS (developed at the Barcelona Super-computing Center).

Mission

The successful candidate will be responsible for continuing the exploration and implementation of the task programming philosophy in the Smilei code. One of the goal will be to extend the OpenMP and Eventify task models, which are currently limited to a small part of the code. Many challenges remain to be addressed and explored, such as how to asynchronously perform MPI communications, compute diagnostics and write output files on disk using tasks, and more. This work is part of a research activity on tasks and will be promoted through publications and international communications.

Required skills

  • Master degree or PhD
  • Strong C++ programing skills
  • Experience in parallel computing (especially MPI, OpenMP)
  • Knowledge of scripting languages (Python, bash, etc) and Unix environment

In addition, the following skills and knowledge will be considered a plus:

  • Experience or knowledge in task-based parallel programming
  • Experience or knowledge in GPU parallel programming (OpenACC, OpenMP or CUDA)
  • Advanced C++

Abouts Us

Maison de la Simulation (https://mdls.fr/) is a joint laboratory between CEA, CNRS, Université Paris-Saclay and Université Versailles Saint-Quentin. It specializes in high-performance computing and numerical simulations in close connection with physical applications, parallel software engineering, programming models, visualization techniques, artificial intelligence, and quantum computing

Working conditions and advantages

The position is located at Maison de la Simulation (CEA Saclay in France). The candidate will be part of the Smilei code development team and participate in developer’s meetings at Ecole Polytechnique. She or He will also work in collaboration with the task-based programming model experts in France and with the developers of Eventify at JSC (Germany). We are also developing a collaboration with the BSC (Spain) on this topic.

The successful candidate will benefit from all the social advantages of CEA: works council, subsidized transport, company savings scheme, health insurance, maternity leaves, teleworking and more.

Application procedure

Please, send a resume and a motivation letter to mathieu.lobet@cea.fr.