MULTILISP: a language for concurrent symbolic computation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Restructuring SIMPLE for the CHiP architecture
Parallel Computing
Type architectures, shared memory, and the corollary of modest potential
Annual review of computer science vol. 1, 1986
Resource requirements of dataflow programs
ISCA '88 Proceedings of the 15th Annual International Symposium on Computer architecture
PPEALS '88 Proceedings of the ACM/SIGPLAN conference on Parallel programming: experience with applications, languages and systems
Communications of the ACM
A bridging model for parallel computation
Communications of the ACM
The XYZ abstraction levels of Poker-like languages
Selected papers of the second workshop on Languages and compilers for parallel computing
A report on the Sisal language project
Journal of Parallel and Distributed Computing - Special issue: data-flow processing
Coarse-grain parallel programming in Jade
PPOPP '91 Proceedings of the third ACM SIGPLAN symposium on Principles and practice of parallel programming
A flexible communication abstraction for nonshared memory parallel computing
Proceedings of the 1990 ACM/IEEE conference on Supercomputing
Architecture-independent scientific programming in data parallel C: three case studies
Proceedings of the 1991 ACM/IEEE conference on Supercomputing
LogP: towards a realistic model of parallel computation
PPOPP '93 Proceedings of the fourth ACM SIGPLAN symposium on Principles and practice of parallel programming
The portability of parallel programs across MIMD computers
The portability of parallel programs across MIMD computers
Parallel programming in Split-C
Proceedings of the 1993 ACM/IEEE conference on Supercomputing
Compiling Global Name-Space Parallel Loops for Distributed Execution
IEEE Transactions on Parallel and Distributed Systems
Program Structuring for Effective Parallel Portability
IEEE Transactions on Parallel and Distributed Systems
Accommodating Polymorphic Data Decompositions in Explicitly Parallel Programs
Proceedings of the 8th International Symposium on Parallel Processing
Proceedings of the 5th 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
Portable Parallel Programming: Cross Machine Comparisons for SIMPLE
Proceedings of the Fifth SIAM Conference on Parallel Processing for Scientific Computing
NESL: A Nested Data-Parallel Language
NESL: A Nested Data-Parallel Language
Compiler Parallelization of SIMPLE for a Distributed Memory Machine
Compiler Parallelization of SIMPLE for a Distributed Memory Machine
ANALYSIS OF THE CODE FOR DATA FLOW COMPUTATION
ANALYSIS OF THE CODE FOR DATA FLOW COMPUTATION
Processor element architecture for nonshared memory parallel computers
Processor element architecture for nonshared memory parallel computers
The portable parallel implementation of two novel mathematical biology algorithms in ZPL
ICS '95 Proceedings of the 9th international conference on Supercomputing
ZPL: A Machine Independent Programming Language for Parallel Computers
IEEE Transactions on Software Engineering - Special issue on architecture-independent languages and software tools for parallel processing
Orgel: A Parallel Programming Language with Declarative Communication Streams
ISHPC '00 Proceedings of the Third International Symposium on High Performance Computing
Parallel Computation: MM +/- X
Informatics - 10 Years Back. 10 Years Ahead.
Anahy: a programming environment for cluster computing
VECPAR'06 Proceedings of the 7th international conference on High performance computing for computational science
Hi-index | 0.00 |
In parallel programming, the need to manage communication, load imbalance, and irregularities in the computation puts substantial demands on the programmer. Key properties of the architecture, such as the number of processors and the cost of communication, must be exploited to achieve good performance, but coding these properties directly into a program compromises the portability and flexibility of the code because significant changes are then needed to port or enhance the program. We describe a parallel programming model that supports the concise, independent description of key aspects of a parallel program驴including data distribution, communication, and boundary conditions驴without reference to machine idiosyncrasies. The independence of such components improves portability by allowing the components of a program to be tuned independently, and encourages reuse by supporting the composition of existing components. The isolation of architecture-sensitive aspects of a computation simplifies the task of porting programs to new platforms. Moreover, the model is effective in exploiting both data parallelism and functional parallelism. This paper provides programming examples, compares this work to related languages, and presents performance results.