Provide support for distributed-memory parallelization
Issue #6
new
Description
The Blaze library already supports three different kinds of shared-memory parallelization: OpenMP, C++11 threads, and Boost threads. So far, however, it doesn't support distributed-memory parallelization. In order to provide full flexibility and to enable tasks that are beyond shared-memory parallelization Blaze should also support distributed memory parallelization.
The implementation of the distributed-memory parallelization must ...
- ... allow for different distributed-memory parallelization paradigms (MPI, HPX, ...)
- ... be as efficient as possible (i.e. no overhead due to Blaze data structures)
- ... be compatible to all vector and matrix types
- ... be as transparent as possible for a user of Blaze
- ... be as easy to use as possible for a user of Blaze
Tasks
- extend the user interface to express distributed vectors and matrices
- build the architecture to support any distributed-memory parallelization paradigm
- implement the backend to perform distributed computations
- provide a complete documentation of the feature
- ensure full compatibility to all existing vector and matrix types
- guarantee maximum performance of the implementation
- run all test cases with the distributed-memory parallelization