Participants : Anaïs Crestetto, Philippe Helluy.
The objective of the three-dimensional parallel software CM2 (Code Multiéchelle Multiphysique) software is to implement a general solver for hyperbolic conservation laws. It is for instance able to solve the MHD model. CLAC is a C++ OpenCL/MPI based library derived from algorithms and ideas developed in CM2. CLAC means “Compute Language Approximation of Conservation laws”.
It is clear now that a future supercomputer will be made of a collection of thousands of interconnected multicore processors. Globally it appears as a classical distributed memory MIMD machine. But at a lower level, each of the multicore processors is itself made of a shared memory MIMD unit (a few classical CPU cores) and a SIMD unit (a GPU). When designing new algorithms, it is important to adapt them for this architecture. Our philosophy will be to program our algorithms in such a way that they can be run efficiently on this kind of computers. Practically, we will use the MPI library for managing the high level parallelism, while the OpenCL library will efficiently operate the low level parallelism.
We have invested for several years now into scientific computing on GPU, using the open standard OpenCL (Open Computing Language). With Anaïs Crestetto, who is preparing a PhD in the CALVI project, we were recently awarded a prize in the international AMD OpenCL innovation challenge thanks. We have developed an OpenCL 2D Vlasov-Maxwell solver, coupling a PIC and a DG algorithms, which fully runs on a GPU. OpenCL is a very interesting tool because it is an open standard now available on almost all brands of multicore processors and GPU. The same parallel program can run on a GPU or a multicore processor without modification.
CLAC is written in C++, which is almost mandatory, because we use the OpenCL library. It also uses the MPI paradigm and is thus able to run on a cluster of GPU. CLAC is also inside a collaboration with a Strasbourg SME, AxesSim, which develops software for electromagnetic simulations. Thomas Strub, who is employed in AxesSim with a CIFRE position, is doing his Ph. D. on the conception and the development of CLAC applied to electromagnetic problems.
Because of the envisaged applications of CLAC, which may be either academical or commercial, it is necessary to conceive a modular framework. The heart of the library is made of generic parallel algorithms for solving conservation laws. The parallelism can be both fine grain (oriented towards GPU and multicore processors) and large grain (oriented towards GPU clusters). The separated modules allow managing the meshes and some specific applications. In this way, it is possible to isolate parts that can be protected by trade secret.