Section: Software
Introduction
We develop two kinds of software. The first one consists in generic libraries that are used within application codes. These libraries comprise a sequential and parallel partitioner for large irregular graphs or meshes (Scotch ), and high performance direct or hybrid solvers for very large sparse systems of equations (MUMPS , PaStiX and HIPS ). The second kind of software corresponds to dedicated software for fluid mechanics (FluidBox ).
For these parallel software developments, we use the message passing paradigm (basing on the MPI interface), sometimes combined with threads so as to exploit multi-core architectures at their best: in some computation kernels such as solvers, when processing elements reside on the same compute node, message buffer space can be saved because the aggregation of partial results can be performed directly in the memory of the receiving processing element. Memory savings can be tremendous, and help us achieve problem sizes which could not be reached before (see Section 5.3 ).