TY - JOUR
T1 - SAC - A functional array language for efficient multi-threaded execution
AU - Grelck, C.
AU - Scholz, S.-B.
PY - 2006/8/1
Y1 - 2006/8/1
N2 - 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.
AB - 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.
UR - http://www.scopus.com/inward/record.url?scp=33747508171&partnerID=8YFLogxK
U2 - 10.1007/s10766-006-0018-x
DO - 10.1007/s10766-006-0018-x
M3 - Article
AN - SCOPUS:33747508171
SN - 0885-7458
VL - 34
SP - 383
EP - 427
JO - International Journal of Parallel Programming
JF - International Journal of Parallel Programming
IS - 4
ER -