APEX -- The APL Parallel Executor

Robert Bernecky, Robert Bernecky · Library and Archives Canada (Government of Canada) · 1997

APEX is an APL-to-SISAL compiler, generating high-performance, portable, parallel code that executes up to several hundred times faster than interpreted APL, with serial performance of kernels competitive with FORTRAN. Preliminary results indicate that acceptable multi-processor speedup is achievable. The excellent run-time performance of APEX-generated code arises from attention to all aspects of program execution: run-time syntax analysis is eliminated, setup costs are reduced, algebraic identities and phrase recognition detect special cases, some matrix products exploit a generalization of sparsematrix algebra, and loop fusion and copy optimizations eliminate many array-valued temporaries. In addition, the compiler exploits Static Single Assignment and array morphology, our generalization of data flow analysis to arrays, to generate run-time primitives that use superior algorithms and simpler storage types. Extensions to APL, including rank, cut, and a monadic operand for dyadic reduction, improve compiled and interpreted code performance. iii Dedication This work is dedicated to my parents, Joe Bernecky and Ann MacIver Bernecky, to whom I owe the

Read the paper · More papers on PaperTik