Suivez

la liste

Internship Opportunity in CPU-GPU Coupling for Parallel Finite Element Solver

In near future, the deployment of exascale machines in Europe will bring unprecedented computing power, opening up new possibilities for computational science and engineering. Up till now the high performance computing (HPC), which has peaked at petascales, has been dominated by multi-node/multi-core central processing unit (CPU) processing. However, the route to exascale computing is heterogeneous supercomputing, i.e. using both CPU and graphics processing unit (GPU) in tandem [1]. In particular, GPU-accelerated computing is the employment GPU(s) alongside CPU(s) in order to facilitate processing-intensive operations. However, this increase in computational power comes with its own set of challenges, such as increased energy consumption, memory limitations, and communication bottlenecks.

CPUs and GPUs have complementary strengths, with CPUs being better at handling complex control flows and branching, and GPUs being optimized for data-parallel computation. By coupling CPUs and GPUs, researchers/engineers can take advantage of the strengths of both devices, leading to faster and more energy-efficient computations [2].

One area where CPU-GPU coupling has shown significant promise is in the field of finite element methods (FEM), which are widely used in many engineering applications. The large and complex systems of equations that arise in FEM simulations can be computationally demanding, especially for large-scale problems. By using CPU-GPU coupling, FEM simulations can be accelerated, allowing for faster and more accurate solutions to real-world engineering problems [3].

At CEA, we are developing a finite element code - ArcaneFEM (https://github.com/arcaneframework/arcanefem) - based on Arcane [4] (a C++ HPC framework dedicated to scientific computing), which is designed to solve large-scale problems in earthquake engineering. Previously, we have already developed an HPC finite element code for earthquake problems based on CPU parallelism (PSD, acronym for Parallel Solid/Structural/Seismic Dynamics is an inhouse CEA code for seismic studies). We believe that incorporating CPU-GPU coupling will significantly enhance the performance of the solver and enable it to take full advantage of the exascale machines that are becoming available.

To this end, we are offering a 6-month internship opportunity for individuals with knowledge and experience in CPU-GPU programming in C++. The intern will work alongside our experienced researchers at CEA, to develop and implement CPU-GPU parallel algorithms to optimize the performance of the in-hand finite element code, ArcaneFEM.

This internship offers a unique opportunity to work on a challenging and rewarding project that aims to solve real-world problems using state-of-the-art techniques. The intern will have access to high-performance computing resources to conduct experiments and will receive guidance from experienced researchers in the field.

Objectives

The internship will involve the following tasks:

  • Analyzing the current implementation of ArcaneFEM (CPU only computing) to identify opportunities for CPU-GPU coupling.
  • Developing and implementing CPU-GPU parallel algorithms to optimize code performance.
  • Conducting experiments to validate and measure the efficiency of the optimized code.
  • Writing of a detailed report.

Requested knowledge

  • Strong programming skills in C++.
  • Knowledge of CPU-GPU parallelization techniques.
  • Familiarity with Finite Element Methods and their implementation is desirable but not required.

Profile

BAC+3 onwards ( étudiant de niveau à partir de BAC+3 -- master, grande école, L3 etc...)

Locality

CEA Paris-Saclay, at (SGLS/LESIM Lab)

How to apply

Send your CV, grades, and motivation letter to

References

[1] D. A. Reed, & J. Dongarra, (2015). Exascale computing and big data. Communications of the ACM, 58(7), 56-68.
[2] M.J. Schulte, M. Ignatowski, G.H. Loh, B.M. Beckmann, W.C. Brantley, S. Gurumurthi, N. Jayasena, I. Paul, S.K. Reinhardt & G. Rodgers, (2015). Achieving exascale capabilities through heterogeneous computing. IEEE Micro, 35(4), pp.26-36.
[3] T. A. Davis, K. D. Devine, & D. R. Fiedler (2018). Exploiting CPU-GPU Synergy for Sparse Matrix Computations. SIAM Review, 60(2), 187-211.
[4] G. Grospellier, B. Lelandais (2009). The Arcane development framework. POOSC’09.