Principles of programming languages: design, evaluation, and implementation (2nd ed.)
Principles of programming languages: design, evaluation, and implementation (2nd ed.)
Type architectures, shared memory, and the corollary of modest potential
Annual review of computer science vol. 1, 1986
Vector models for data-parallel computing
Vector models for data-parallel computing
A data locality optimizing algorithm
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
An implementation of the fast multipole method without multipoles
SIAM Journal on Scientific and Statistical Computing
Fortran 90 handbook: complete ANSI/ISO reference
Fortran 90 handbook: complete ANSI/ISO reference
The portability of parallel programs across MIMD computers
The portability of parallel programs across MIMD computers
PVM: Parallel virtual machine: a users' guide and tutorial for networked parallel computing
PVM: Parallel virtual machine: a users' guide and tutorial for networked parallel computing
An integrated compilation and performance analysis environment for data parallel programs
Supercomputing '95 Proceedings of the 1995 ACM/IEEE conference on Supercomputing
The portable parallel implementation of two novel mathematical biology algorithms in ZPL
ICS '95 Proceedings of the 9th international conference on Supercomputing
Programming parallel algorithms
Communications of the ACM
Relative debugging: a new methodology for debugging scientific applications
Communications of the ACM
Software—Practice & Experience
Using ZPL to develop a parallel chaos router simulator
WSC '96 Proceedings of the 28th conference on Winter simulation
HPC++: experiments with the parallel standard template library
ICS '97 Proceedings of the 11th international conference on Supercomputing
The role of performance models in parallel programming and languages
The role of performance models in parallel programming and languages
Abstractions for Portable, Scalable Parallel Programming
IEEE Transactions on Parallel and Distributed Systems
Data transformations for eliminating conflict misses
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
The implementation and evaluation of fusion and contraction in array languages
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Co-array Fortran for parallel programming
ACM SIGPLAN Fortran Forum
A programmer's guide to ZPL
Regions: an abstraction for expressing array computation
Proceedings of the conference on APL '99 : On track to the 21st century: On track to the 21st century
Journal of the ACM (JACM)
Portable performance of data parallel languages
SC '97 Proceedings of the 1997 ACM/IEEE conference on Supercomputing
High Performance Compilers for Parallel Computing
High Performance Compilers for Parallel Computing
Computer Vision
The Case for High-Level Parallel Programming in ZPL
IEEE Computational Science & Engineering
Quantifying the Effects of Communication Optimizations
ICPP '97 Proceedings of the international Conference on Parallel Processing
Factor-Join: A Unique Approach to Compiling Array Languages for Parallel Machines
LCPC '96 Proceedings of the 9th International Workshop on Languages and Compilers for Parallel Computing
A Compiler Abstraction for Machine Independent Parallel Communication Generation
LCPC '97 Proceedings of the 10th International Workshop on Languages and Compilers for Parallel Computing
Proceedings of the 6th International Workshop on Languages and Compilers for Parallel Computing
SIMPLE Performance Results in ZPL
LCPC '94 Proceedings of the 7th International Workshop on Languages and Compilers for Parallel Computing
Invited Lecture: Foundations of Practical Parallel Programming Languages
Proceedings of the Second International ACPC Conference on Parallel Computation
Parallelism in random access machines
STOC '78 Proceedings of the tenth annual ACM symposium on Theory of computing
ZPL's WYSIWYG Performance Model
HIPS '98 Proceedings of the High-Level Parallel Programming Models and Supportive Environments
NESL: A Nested Data-Parallel Language
NESL: A Nested Data-Parallel Language
Extending the data parallel paradigm with data-dependent operators
Parallel Computing - Parallel computing in image and video processing
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
Retargeting Sequential Image-Processing Programs for Data Parallel Execution
IEEE Transactions on Software Engineering
Lifting sequential graph algorithms for distributed-memory parallel computation
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Adaptive scheduling with parallelism feedback
Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming
SAC: a functional array language for efficient multi-threaded execution
International Journal of Parallel Programming
Performance without pain = productivity: data layout and collective communication in UPC
Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming
From Contracts Towards Dependent Types: Proofs by Partial Evaluation
Implementation and Application of Functional Languages
Multidimensional Blocking in UPC
Languages and Compilers for Parallel Computing
Reducers and other Cilk++ hyperobjects
Proceedings of the twenty-first annual symposium on Parallelism in algorithms and architectures
Efficient parallel stencil convolution in Haskell
Proceedings of the 4th ACM symposium on Haskell
More dependent types for distributed arrays
Higher-Order and Symbolic Computation
Hi-index | 0.00 |
The goal of producing architecture-independent parallel programs is complicated by the competing need for high performance. The ZPL programming language achieves both goals by building upon an abstract parallel machine and by providing programming constructs that allow the programmer to 驴see驴 this underlying machine. This paper describes ZPL and provides a comprehensive evaluation of the language with respect to its goals of performance, portability, and programming convenience. In particular, we describe ZPL's machine-independent performance model, describe the programming benefits of ZPL's region-based constructs, summarize the compilation benefits of the language's high-level semantics, and summarize empirical evidence that ZPL has achieved both high performance and portability on diverse machines such as the IBM SP-2, Cray T3E, and SGI Power Challenge.