login

Features from functional programming for a C++ skeleton library

Concurrency and Computation Practice and ExperiencePublished 23 February 2005
Herbert Kuchen, Jörg Striegnitz
Citations13
SJR quartileQ2
SJR score0.44
SNIP0.68

TL;DR

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 is described.

Abstract

Abstract 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.

Keywords

Computer Science