Participants : Pierre-Nicolas Clauss, Jens Gustedt, Stéphane Vialle.
parXXL is a library for large scale computation and communication that executes fine grained algorithms (computation and communication are of the same order of magnitude) on coarse grained architectures (clusters, grids, mainframes).
Historically parXXL is the result of a merge of two different projects, ParCeL (from SUPÉLEC) and SSCRAP (from INRIA ), that stand respectively for a consequent modeling and implementation of fine grained networks (ParCeL ) and coarse grained algorithmic (SSCRAP ).
This library takes the requirements of PRO , see Section 3.1 , into account, i.e., the design of algorithms in alternating computation and communication steps. It realizes an abstraction layer between the algorithm as it was designed and its realization on different architectures and different modes of communication. The current version of this library is available at http://parxxl.gforge.inria.fr/ and integrates:
a layer for message passing with MPI ,
a layer for shared memory with POSIX threads ,
a layer for out-of-core management with file mapping (system call mmap ).
All three different realizations of the communication layers are quite efficient. They let us execute programs that are otherwise unchanged within the three different contexts. Usually, they reach the performance of programs that are directly written for a given context. Generally they outperform programs that are executed in a different context than they were written for, such as MPI programs that are executed on a shared memory mainframe, or such as multi-threaded programs that are executed on a distributed shared memory machine.