This library provides a framework to parallelize algorithms that follow a divide-and-conquer pattern. Its two main components are the skeletons
dparallel_recursion. The first one parallelizes the required algorithm using multithreading within a single process. The second skeleton supports the parallelization across hybrid memory environments such as clusters of nodes with multi-core processors as well as multiple processes on top of the MPI standard.
Please read the accompanying
Examples and documentation
testsdirectories contain implementations of algorithms with very different nature using the library and execising all its features.
make docin the
doc directorybuilds a user-level documenation based on Doxygen. A more detailed documentation can be built by running
parallel_recursionskeleton and its supporting classes are described and compared with other alternatives in the publication A Generic Algorithm Template for Divide-and-conquer in Multicore Systems (DOI 10.1109/HPCC.2010.24).
dparallel_recursionskeleton is described and compared with other alternatives in the publication A general and efficient divide-and-conquer algorithm framework for multi-core clusters (DOI 10.1007/s10586-017-0766-y).
This library is licensed under the Apache license V2 because that is the license for the Intel® TBB threading system it relies on. If you change it to rely on any other threading system, feel free to adapt the license accordingly.