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
Process decomposition through locality of reference
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
A production-quality C* compiler for Hypercube multicomputers
PPOPP '91 Proceedings of the third ACM SIGPLAN symposium on Principles and practice of parallel programming
Generating explicit communication from shared-memory program references
Proceedings of the 1990 ACM/IEEE conference on Supercomputing
An optimizing C* compiler for a hypercube multicomputer
Languages, compilers and run-time environments for distributed memory machines
The Paragon programming paradigm and distributed memory multicomputers
Languages, compilers and run-time environments for distributed memory machines
CHARM++: a portable concurrent object oriented system based on C++
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Parallel programming in Split-C
Proceedings of the 1993 ACM/IEEE conference on Supercomputing
Implementing a parallel C++ runtime system for scalable parallel systems
Proceedings of the 1993 ACM/IEEE conference on Supercomputing
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Parallelization of FORTRAN code on distributed-memory parallel processors
ICS '90 Proceedings of the 4th international conference on Supercomputing
Pandore: a system to manage data distribution
ICS '90 Proceedings of the 4th international conference on Supercomputing
High performance Fortran: history, status and future
Parallel Computing - Special issues on languages and compilers for parallel computers
Efficient run-time support for irregular block-structured applications
Journal of Parallel and Distributed Computing - Special issue on irregular problems in supercomputing applications
A global communication optimization technique based on data-flow analysis and linear algebra
ACM Transactions on Programming Languages and Systems (TOPLAS)
Compiling high performance Fortran for distributed-memory architectures
Parallel Computing - Special Anniversary issue
Control structures in Illiac IV Fortran
Communications of the ACM
Concurrent Programming in Java: Design Principles and Patterns
Concurrent Programming in Java: Design Principles and Patterns
Combining dependence and data-flow analyses to optimize communication
IPPS '95 Proceedings of the 9th International Symposium on Parallel Processing
ADAPTing Fortran 90 Array Programs for Distributed Memory Architectures
Proceedings of the First International ACPC Conference on Parallel Computation
14.9 TFLOPS three-dimensional fluid simulation for fusion science with HPF on the Earth Simulator
Proceedings of the 2002 ACM/IEEE conference on Supercomputing
A performance analysis of the Berkeley UPC compiler
ICS '03 Proceedings of the 17th annual international conference on Supercomputing
The design and implementation of a region-based parallel programming language
The design and implementation of a region-based parallel programming language
Generalized multipartitioning of multi-dimensional arrays for parallelizing line-sweep computations
Journal of Parallel and Distributed Computing - Special section best papers from the 2002 international parallel and distributed processing symposium
A Multi-Platform Co-Array Fortran Compiler
Proceedings of the 13th International Conference on Parallel Architectures and Compilation Techniques
X10: an object-oriented approach to non-uniform cluster computing
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The rise and fall of High Performance Fortran: an historical object lesson
Proceedings of the third ACM SIGPLAN conference on History of programming languages
Parallel Programmability and the Chapel Language
International Journal of High Performance Computing Applications
Scientific Programming
Parallel Programmability and the Chapel Language
International Journal of High Performance Computing Applications
From FORTRAN 77 to locality-aware high productivity languages for peta-scale computing
Scientific Programming - Fortran Programming Language and Scientific Programming: 50 Years of Mutual Growth
Ada and cc-NUMA architectures what can be achieved with Ada 2005?
ACM SIGAda Ada Letters
A locality model for the real-time specification for Java
Proceedings of the 8th International Workshop on Java Technologies for Real-Time and Embedded Systems
User-defined distributions and layouts in chapel: philosophy and framework
HotPar'10 Proceedings of the 2nd USENIX conference on Hot topics in parallelism
Enabling locality-aware computations in OpenMP
Scientific Programming - Exploring Languages for Expressing Medium to Massive On-Chip Parallelism
The rise and fall of high performance Fortran
Communications of the ACM
A system framework and API for run-time adaptable parallel software
Proceedings of the 2013 Research in Adaptive and Convergent Systems
Hi-index | 0.03 |
A key characteristic of today's high performance computing systems is a physically distributed memory, which makes the efficient management of locality essential for taking advantage of the performance enhancements offered by these architectures. Currently, the standard technique for programming such systems involves the extension of traditional sequential programming languages with explicit message-passing libraries, in a processor-centric model for programming and execution. It is commonly understood that this programming paradigm results in complex, brittle, and error-prone programs, because of the way in which algorithms and communication are inextricably interwoven. This paper describes a new approach to locality awareness, which focuses on data distributions in high-productivity languages. Data distributions provide an abstract specification of the partitioning of large-scale data collections across memory units, supporting coarse-grain parallel computation and locality of access at a high level of abstraction. Our design, which is based on a new programming language called Chapel, is motivated by the need to provide a high-productivity paradigm for the development of efficient and reusable parallel code. We present an object-oriented framework that allows the explicit specification of the mapping of elements in a collection to memory units, the control of the arrangement of elements within such units, the definition of sequential and parallel iteration over collections, and the formulation of specialized allocation policies as required for advanced applications. The result is a concise high-productivity programming model that separates algorithms from data representation and enables reuse of distributions, allocation policies, and data structures.