EN FR
EN FR


Section: New Software and Platforms

SCHNAPS

Participants : Emmanuel Franck, Pierre Gerhard, Philippe Helluy [correspondent] , Michel Massaro, Malcolm Roberts, Bruno Weber.

Solveur pour les lois de Conservation Hyperboliques Non-linéaires Appliqué aux PlasmaS

Scientific Description

It is clear now that future computers 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 to this kind of 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 coarse grain parallelism, while the OpenCL library will efficiently operate the fine grain parallelism.

We have invested for several years until now into scientific computing on GPUs, using the open standard OpenCL (Open Computing Language). We were recently awarded a prize in the international AMD OpenCL innovation challenge thanks to an OpenCL two-dimensional Vlasov-Maxwell solver that 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 GPUs. The same parallel program can run on a GPU or a multicore processor without modification. OpenCL programs are quite complicated to construct. For instance it is difficult to distribute efficiently the computation or memory operations on the different available accelerators. StarPU http://starpu.gforge.inria.fr/ is a runtime system developed at Inria Bordeaux that simplifies the distribution of tasks on heterogeneous compute units. We have started to use this software tool in SCHNAPS.

Because of the envisaged applications, which may be either academic 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-grained (oriented towards GPUs and multicore processors) and coarse-grained (oriented towards GPU clusters). The separate modules allow managing the meshes and some specific applications. With our partner AxesSim, we also develop a C++ specific version of SCHNAPS for electromagnetic applications.

Functional Description

SCHNAPS is a generic Discontinuous Galerkin solver, written in C, based on the OpenCL, MPI and StarPU frameworks.