TY - JOUR
T1 - SAC - From high-level programming with arrays to efficient parallel execution
AU - Grelck, Clemens
AU - Scholz, Sven Bodo
PY - 2003/9/1
Y1 - 2003/9/1
N2 - SAC is a purely functional array processing language designed with numerical applications in mind. It supports generic, high-level program specifications in the style of APL. However, rather than providing a fixed set of built-in array operations, SAC provides means to specify such operations in the language itself in a way that still allows their application to arrays of any rank and size. This paper illustrates the major steps in compiling generic, rank- and shape-invariant SAC specification into efficiently executable multithreaded code for parallel execution on shared memory multiprocessors. The effectiveness of the compilation techniques is demonstrated by means of a small case study on the PDE1 benchmark, which implements 3-dimensional red/black successive over-relaxation. Comparisons with HPF and ZPL show that despite the genericity of code, SAC achieves highly competitive runtime performance characteristics.
AB - SAC is a purely functional array processing language designed with numerical applications in mind. It supports generic, high-level program specifications in the style of APL. However, rather than providing a fixed set of built-in array operations, SAC provides means to specify such operations in the language itself in a way that still allows their application to arrays of any rank and size. This paper illustrates the major steps in compiling generic, rank- and shape-invariant SAC specification into efficiently executable multithreaded code for parallel execution on shared memory multiprocessors. The effectiveness of the compilation techniques is demonstrated by means of a small case study on the PDE1 benchmark, which implements 3-dimensional red/black successive over-relaxation. Comparisons with HPF and ZPL show that despite the genericity of code, SAC achieves highly competitive runtime performance characteristics.
UR - http://www.scopus.com/inward/record.url?scp=0346267381&partnerID=8YFLogxK
U2 - 10.1142/S0129626403001379
DO - 10.1142/S0129626403001379
M3 - Journal articles
AN - SCOPUS:0346267381
SN - 0129-6264
VL - 13
SP - 401
EP - 412
JO - Parallel Processing Letters
JF - Parallel Processing Letters
IS - 3
ER -