Generative communication in Linda
ACM Transactions on Programming Languages and Systems (TOPLAS)
MULTILISP: a language for concurrent symbolic computation
ACM Transactions on Programming Languages and Systems (TOPLAS)
SIAM Journal on Scientific and Statistical Computing - Papers from the Second Conference on Parallel Processing for Scientific Computin
An overview of the SR language and implementation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Portable programs for parallel processors
Portable programs for parallel processors
Guide to parallel programming on Sequent computer systems: 2nd edition
Guide to parallel programming on Sequent computer systems: 2nd edition
Large-scale parallel programming: experience with BBN butterfly parallel processor
PPEALS '88 Proceedings of the ACM/SIGPLAN conference on Parallel programming: experience with applications, languages and systems
A compositional model for software reuse
The Computer Journal - Special issue on object-oriented programming
Process decomposition through locality of reference
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
Simple but effective techniques for NUMA memory management
SOSP '89 Proceedings of the twelfth ACM symposium on Operating systems principles
SOSP '89 Proceedings of the twelfth ACM symposium on Operating systems principles
Parallel execution of LISP programs
Parallel execution of LISP programs
A bridging model for parallel computation
Communications of the ACM
Munin: distributed shared memory based on type-specific memory coherence
PPOPP '90 Proceedings of the second ACM SIGPLAN symposium on Principles & practice of parallel programming
Supporting shared data structures on distributed memory architectures
PPOPP '90 Proceedings of the second ACM SIGPLAN symposium on Principles & practice of parallel programming
The C++ programming language (2nd ed.)
The C++ programming language (2nd ed.)
Architectural adaptability in parallel programming
Architectural adaptability in parallel programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Transactions on Programming Languages and Systems (TOPLAS)
On the criteria to be used in decomposing systems into modules
Communications of the ACM
Optimizing Supercompilers for Supercomputers
Optimizing Supercompilers for Supercomputers
Partitioning and Scheduling Parallel Programs for Multiprocessors
Partitioning and Scheduling Parallel Programs for Multiprocessors
Parallel Programming and Compilers
Parallel Programming and Compilers
VMMP: A Practical Tool for the Development of Portable and Efficient Programs for Multiprocessors
IEEE Transactions on Parallel and Distributed Systems
Portable Parallel Programming: Cross Machine Comparisons for SIMPLE
Proceedings of the Fifth SIAM Conference on Parallel Processing for Scientific Computing
Experimental Comparison of Memory Management Policies for NUMA Multiprocessors
Experimental Comparison of Memory Management Policies for NUMA Multiprocessors
Architectural Adaptability in Parallel Programming via Control Abstraction
Architectural Adaptability in Parallel Programming via Control Abstraction
Par: an approach to architecture-independent parallel programming
Par: an approach to architecture-independent parallel programming
Abstractions for effectively portable shared memory parallel programs
Abstractions for effectively portable shared memory parallel programs
Chores: enhanced run-time support for shared-memory parallel computing
ACM Transactions on Computer Systems (TOCS)
Parallel programming with control abstraction
ACM Transactions on Programming Languages and Systems (TOPLAS)
Distributed Shared Abstractions (DSA) on Multiprocessors
IEEE Transactions on Software Engineering
Portability and reusability: common issues and differences
CSC '95 Proceedings of the 1995 ACM 23rd annual conference on Computer science
Abstractions for Portable, Scalable Parallel Programming
IEEE Transactions on Parallel and Distributed Systems
Support for Efficient Programming on the SB-PRAM
International Journal of Parallel Programming
Sequoia: programming the memory hierarchy
Proceedings of the 2006 ACM/IEEE conference on Supercomputing
Sequoia: programming the memory hierarchy
Proceedings of the 2006 ACM/IEEE conference on Supercomputing
Hi-index | 0.00 |
The tension between software development costs and efficiency is especially high when considering parallel programs intended to run on a variety of architectures. In the domain of shared memory architectures and explicitly parallel programs, the authors have addressed this problem by defining a programming structure that eases the development of effectively portable programs. On each target multiprocessor, an effectively portable program runs almost as efficiently as a program fine-tuned for that machine. Additionally, its software development cost is close to that of a single program that is portable across the targets. Using this model, programs are defined in terms of data structure and partitioning-scheduling abstractions. Low software development cost is attained by writing source programs in terms of abstract interfaces and thereby requiring minimal modification to port; high performance is attained by matching (often dynamically) the interfaces to implementations that are most appropriate to the execution environment. The authors include results of a prototype used to evaluate the benefits and costs of this approach.