Microtasking on IBM multiprocessors
IBM Journal of Research and Development
Program analysis and code generation in an APL/370 compiler
IBM Journal of Research and Development
An overview for the PTRAN analysis system for multiprocessing
Journal of Parallel and Distributed Computing - Special Issue on Languages, Compilers and environments for Parallel Programming
Compiling Fortran 8x array features for the connection machine computer system
PPEALS '88 Proceedings of the ACM/SIGPLAN conference on Parallel programming: experience with applications, languages and systems
Automatic generation of DAG parallelism
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
An empirical study of the performance of the APL370 compiler
APL '89 Conference proceedings on APL as a tool of thought
Parallel processing: a smart compiler and a dumb machine
SIGPLAN '84 Proceedings of the 1984 SIGPLAN symposium on Compiler construction
Structure of Computers and Computations
Structure of Computers and Computations
Exploitation of APL data parallelism on a shared-memory MIMD machine
PPOPP '91 Proceedings of the third ACM SIGPLAN symposium on Principles and practice of parallel programming
On performance and space usage improvements for parallelized compiled APL code
APL '91 Proceedings of the international conference on APL '91
IBM Systems Journal
Parallel expression in the APL2 language
IBM Systems Journal
Execution of automatically parallelized APL programs on RP3
IBM Journal of Research and Development
Structured APL: a proposal for block structured control flow in APL
APL '93 Proceedings of the international conference on APL
Compiling nested data-parallel programs for shared-memory multiprocessors
ACM Transactions on Programming Languages and Systems (TOPLAS)
OOPAL: integrating array programming in object-oriented programming
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Hi-index | 0.00 |
APL-style programs use high level primitives on arrays instead of DO-loops whenever possible. For such programs, the average size of a basic blocks is much large than those in their FORTRAN counterparts. Hence, it is sufficiently profitable and relative easy to concentrate on basic blocks when parallelizing APL-style programs. But such an approach must depend on an APL compiler. The APL/370 compiler we have been developing aims at implementing automatic parallelization of APL programs at basic block level.The compiler exploits functional parallelism on data independent sub-expressions and data parallelism of array primitives on array elements. The compiler front end does a local data dependency analysis and emits synchronization flags at function nodes. The back end does partitioning of (assembly code) array loop. A set of low-level synchronization primitives on MVS has also been developed. This will enable us to run compiled applications in parallel mode on IBM 3090 multi-processors to access the effectiveness of various scheduling methods on a shared memory model.