Merging compositions of array skeletons in SAC

  • Authors:
  • Clemens Grelck;Sven-Bodo Scholz

  • Affiliations:
  • University of Lübeck, Institute of Software Technology and Programming Languages, Lübeck, Germany;University of Hertfordshire, Department of Computer Science, College Lane, Hatfield, Hertfordshire, United Kingdom

  • Venue:
  • Parallel Computing - Algorithmic skeletons
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

The design of skeletons for expressing concurrent computations usually faces a conflict between software engineering demands and performance issues. Whereas the former favour versatile fine-grain skeletons that can be successively combined into larger programs, coarse-grain skeletons are more desirable from a performance perspective.We describe a way out of this dilemma for array skeletons. In the functional array language SAC we internally represent individual array skeletons by one or more meta skeletons, called WITH-loops. The design of WITH-loops is carefully chosen to be versatile enough to cope with a large variety of skeletons, yet to be simple enough to allow for compilation into efficiently executable (parallel) code. Furthermore, WITH-loops are closed with respect to three tailor-made optimisation techniques, that systematically transform compositions of simple, computationally light-weight skeletons into few complex and computationally heavier-weight skeletons.