Accelerating APL programs with SAC

The paper investigates, how S<sc>AC</sc>, a purely functional language based on C syntax, relates to A<sc>PL</sc> in terms of expressiveness and run-time behavior. To do so, three different excerpts of real world A<sc>PL</sc> programs are examined. It is shown that after defining the required A<sc>PL</sc> primitives in S<sc>AC</sc>, the example programs can be re-written in S<sc>AC</sc> with an almost one-to-one correspondence. Run-time comparisons between interpreting A<sc>PL</sc> programs and compiled S<sc>AC</sc> programs show that speedups due to compilation vary between 2 and 500 for three representative benchmark programs.

[1]  K. Kennedy,et al.  Loop Fusion in High Performance Fortran Loop Fusion in High Performance Fortran , 1998 .

[2]  Sven-Bodo Scholz,et al.  On Programming Scientific Applications in SAC - A Functional Language Extended by a Subsystem for High-Level Array Operations , 1996, Implementation of Functional Languages.

[3]  Lawrence Snyder,et al.  The implementation and evaluation of fusion and contraction in array languages , 1998, PLDI '98.

[4]  Sven-Bodo Scholz,et al.  A Case Study: Effects of WITH-Loop-Folding on the NAS Benchmark MG in SAC , 1998, IFL.

[5]  Sven-Bodo Scholz Single Assignment C - Functional Programming Using Imperative Style , 1994 .

[6]  Ken Kennedy,et al.  Dependence Analysis of Fortran90 Array Syntax , 1996, PDPTA.

[7]  Donald L. Orth,et al.  Compiling APL: The Yorktown APL Translator , 1986, IBM J. Res. Dev..

[8]  Robert Bernecky Apex: the apl parallel executor , 1997 .

[9]  Barbara M. Chapman,et al.  Supercompilers for parallel and vector computers , 1990, ACM Press frontier series.

[10]  Chuan-jie Lin Zpl language reference manual , 1994 .

[11]  Michael Wolfe,et al.  High performance compilers for parallel computing , 1995 .

[12]  Timothy Budd,et al.  An APL Compiler , 1987, Springer New York.

[13]  James A. Brown Inside the APL2 workspace , 1985, APL '85.

[14]  Sven-Bodo Scholz,et al.  Single assignment C: Entwurf und Implementierung einer funktionalen C-Variante mit spezieller Unterstützung shape-invarianter Array-Operationen , 1997 .

[15]  Jim Weigang An introduction to STSC's APL compiler , 1985, APL '85.

[16]  Kenneth E. Iverson,et al.  A programming language , 1899, AIEE-IRE '62 (Spring).