Features from functional programming for a C++ skeleton library

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 are intended to simplify parallel programming by increasing 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 higher expressive power can be gained without a significant performance penalty. Copyright © 2005 John Wiley & Sons, Ltd.