Tool : alsk

Active C++ Library for Assisted Parallelisation with Algorithmic Skeletons

The alsk library is an implementation of the concept of algorithmic skeletons in C++ using template metaprogramming and whose interface relies on EDSLs allowing the description of full algorithms. These descriptions enable the building of ASTs annotated with informations related to the dependencies and links between the different parts of the algorithm. Thanks to these ones and a set of parameters, such as the number of allocated cores or an execution policy, the library determines how the algorithm must be parallelised and generates the suitable code. The repetability of the executions can be ensured, even for stochastic algorithms, independently of the actual parallelisation degree.

This library is related with two other projects: the TMP library, on which alsk relies, provides a set of data strutures and algorithms to help with the design of metaprograms; and the ROSA library, based on alsk, provides a set of algorithmic skeletons dedicated to operational research.

Authors : Alexis PEREDA, Bruno BACHELET, Claude MAZEL, David HILL