SAC: a functional array language for efficient multi-threaded execution

  • Authors:
  • Clemens Grelck;Sven-Bodo Scholz

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

  • Venue:
  • International Journal of Parallel Programming
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

We give an in-depth introduction to the design of our functional array programming language SAC, the main aspects of its compilation into host machine code, and its parallelisation based on multi-threading. The language design of SAC aims at combining high-level, compositional array programming with fully automatic resource management for highly productive code development and maintenance. We outline the compilation process that maps SAC programs to computing machinery. Here, our focus is on optimisation techniques that aim at restructuring entire applications from nested compositions of general fine-grained operations into specialised coarse-grained operations. We present our implicit parallelisation technology for shared memory architectures based on multi-threading and discuss further optimisation opportunities on this level of code generation. Both optimisation and parallelisation rigorously exploit the absence of side-effects and the explicit data flow characteristic of a functional setting.