Algorithmic skeletons using template metaprogramming


Algorithmic skeletons, introduced by Cole, were designed to ease the development of parallel software. This article presents a way to represent and implement algorithmic skeletons using bones − atomic elements − to build structures, and data flow graphs to link the structures. We design and implement a library relying on Template Metaprogramming (TMP) to describe and use both skeletons and links to produce automatically either a sequential or a parallel implementation of the algorithm, aiming slight to no run-time overhead compared to handwritten implementations. Performance results of this library, applied to metaheuristics in Operations Research (OR), are presented to show that this approach induces negligible run-time overhead.

The 14th International Student Conference on Advanced Science and Technology (ICAST)