30/01/2003
Susanna Pelagatti (Università di Pisa)
Parallel skeletons, costs and transformations

The seminar introduces algorithmic skeletons and discusses the potential benefits of skeletal parallel programming.

Algorithmic skeletons are common interaction patterns among parallel processes. For instance, the map skeleton abstracts embarrassingly parallel computations in which the same function is applied to a (potentially large) set of elements and the pipeline skeleton extracts parallelism between a sequence of independent phases of a parallel computation. Skeletal programs are built composing several skeletons to build a (possibly complex) parallel structure.

The crucial difference between skeletal programming and usual parallel programming is that performance (cost) of skeletal programs can be predicted from the costs of their sequential parts and from the knowledge of the constituent skeletons. This provides a solid metric which can be used by programmers to take sensible decisions during parallel software development and by compilers to optimize the global application structure for a particular target machine.