Automatic Parallelization of Array-oriented Programs for a Multi-core Machine

We present the work on automatic parallelization of array-oriented programs for multi-core machines. Source programs written in standard APL are translated by a parallelizing APL-to-C compiler into parallelized C code, i.e. C mixed with OpenMP directives. We describe techniques such as virtual operations and data-partitioning used to effectively exploit parallelism structured around array-primitives. We present runtime performance data, showing the speedup of the resulting parallelized code, using different numbers of threads and different problem sizes, on a 4-core machine, for several examples.

[1]  D. Novillo OpenMP and automatic parallelization in GCC Diego , 2006 .

[2]  Wai-Mee Ching,et al.  An experimental APL compiler for a distributed memory parallel machine , 1994, Proceedings of Supercomputing '94.

[3]  Roy Dz-Ching Ju,et al.  Execution of automatically parallelized APL programs on RP3 , 1991, IBM J. Res. Dev..

[4]  Kenneth E. Iverson,et al.  979 Acm Turing Award Lecture Notation as a Tool of Thought , 2022 .

[5]  John Cocke,et al.  A program data flow analysis procedure , 1976, CACM.

[6]  Yanhong A. Liu,et al.  Optimizing aggregate array computations in loops , 2005, TOPL.

[7]  Leonidas J. Guibas,et al.  Compilation and delayed evaluation in APL , 1978, POPL.

[8]  Roy Dz-Ching Ju,et al.  The Classification, Fusion, and Parallelization of Array Language Primitives , 1994, IEEE Trans. Parallel Distributed Syst..

[9]  Roy Dz-Ching Ju,et al.  A Primitive-Based Strategy for Producing Efficient Code for Very High Level Programs , 1993, Comput. Lang..

[10]  Wai-Mee Ching,et al.  Program Analysis and Code Generation in an APL/370 Compiler , 1986, IBM J. Res. Dev..

[11]  Wai-Mee Ching,et al.  A Comparison Study on Execution Performance of MATLAB and APL , 2011 .

[12]  Nagiza F. Samatova,et al.  Transparent runtime parallelization of the R scripting language , 2011, J. Parallel Distributed Comput..

[13]  Rudolf Eigenmann,et al.  Cetus: A Source-to-Source Compiler Infrastructure for Multicores , 2009, Computer.

[14]  James Demmel,et al.  the Parallel Computing Landscape , 2022 .

[15]  Edith Schonberg,et al.  An HPF Compiler for the IBM SP2 , 1995, Proceedings of the IEEE/ACM SC95 Conference.

[16]  Yunheung Paek,et al.  Parallel Programming with Polaris , 1996, Computer.

[17]  Kenneth E. Iverson,et al.  Notation as a tool of thought , 1980, APLQ.

[18]  Wai-Mee Ching,et al.  An APL-to-C compiler for the IBM RISC System/6000: compilation, performance and limitations , 1993, APLQ.