Higher-order functions and partial applications for a C++ skeleton library

Herbert Kuchen, Jörg Striegnitz · 2002

Message passing based on libraries such as MPI is typically used to program parallel machines with distributed memory. This is efficient but error prone. Algorithmic skeletons intend to simplify parallel programming by increasing the expressive power. The idea is to offer typical parallel programming patterns as polymorphic higher-order functions which are efficiently implemented in parallel. The present paper describes, how C++ templates and operator overloading can be used in order to provide the main features needed for algorithmic skeletons, namely higher-order functions, partial applications, and parametric polymorphism. Experimental results based on a draft implementation of our C++ skeleton library show that the higher expressive power can be gained without a significant performance penalty.

Read the paper · More papers on PaperTik