Multilanguage Parallel Programming of Heterogeneous Machines
IEEE Transactions on Computers - Special issue on architectural support for programming languages and operating systems
An O(NlogN) hypercube N-body integrator
C3P Proceedings of the third conference on Hypercube concurrent computers and applications - Volume 2
The Amber system: parallel programming on a network of multiprocessors
SOSP '89 Proceedings of the twelfth ACM symposium on Operating systems principles
The composition of concurrent programs
Proceedings of the 1989 ACM/IEEE conference on Supercomputing
A report on the Sisal language project
Journal of Parallel and Distributed Computing - Special issue: data-flow processing
PVM: a framework for parallel distributed computing
Concurrency: Practice and Experience
An implementation of distributed shared memory
Software—Practice & Experience
Accumulators: new logic variable abstractions for functional languages
Theoretical Computer Science
Implementation and performance of Munin
SOSP '91 Proceedings of the thirteenth ACM symposium on Operating systems principles
Orca: A Language for Parallel Programming of Distributed Systems
IEEE Transactions on Software Engineering
The Stanford Dash Multiprocessor
Computer
Distributed shared memory with versioned objects
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
Implementing an irregular application on a distributed memory multiprocessor
PPOPP '93 Proceedings of the fourth ACM SIGPLAN symposium on Principles and practice of parallel programming
Linda on distributed memory multiprocessors
Linda on distributed memory multiprocessors
An efficient block-oriented approach to parallel sparse Cholesky factorization
Proceedings of the 1993 ACM/IEEE conference on Supercomputing
Software versus hardware shared-memory implementation: a case study
ISCA '94 Proceedings of the 21st annual international symposium on Computer architecture
Compositional C++: Compositional Parallel Programming
Proceedings of the 5th International Workshop on Languages and Compilers for Parallel Computing
PRELUDE: A SYSTEM FOR PORTABLE PARALL
PRELUDE: A SYSTEM FOR PORTABLE PARALL
An Efficient Shared Memory Layer for Distributed Memory Machines.
An Efficient Shared Memory Layer for Distributed Memory Machines.
Implementation of tuple space machines
Implementation of tuple space machines
A comprehensive bibliography of distributed shared memory
ACM SIGOPS Operating Systems Review
A General Data Layout for Distributed Consistency in Data Parallel Applications
HiPC '02 Proceedings of the 9th International Conference on High Performance Computing
Dag-Consistent Distributed Shared Memory
IPPS '96 Proceedings of the 10th International Parallel Processing Symposium
Experience with Parallel Computing on the AN2 Network
IPPS '96 Proceedings of the 10th International Parallel Processing Symposium
Aurora: Scoped Behavior for Per-Context Optimized Distributed Data Sharing
IPPS '97 Proceedings of the 11th International Symposium on Parallel Processing
DPF: A Data Parallel Fortran Benchmark Suite
IPPS '97 Proceedings of the 11th International Symposium on Parallel Processing
View Caching: Efficient Software Shared Memory for Dynamic Computations
IPPS '97 Proceedings of the 11th International Symposium on Parallel Processing
Analysis of Multithreaded Programs
SAS '01 Proceedings of the 8th International Symposium on Static Analysis
Run-Time Support for Distributed Sharing in Typed Languages
LCR '00 Selected Papers from the 5th International Workshop on Languages, Compilers, and Run-Time Systems for Scalable Computers
Supporting High Level Programming with High Performance: The Illinois Concert System
HIPS '97 Proceedings of the 1997 Workshop on High-Level Programming Models and Supportive Environments (HIPS '97)
Operator Design Pattern for Data Parallel Computation
TOOLS '97 Proceedings of the Tools-23: Technology of Object-Oriented Languages and Systems
Hi-index | 0.00 |
This paper describes the design and evaluation of SAM, a shared object system for distributed memory machines. SAM is a portable run-time system that provides a global name space and automatic caching of shared data. SAM incorporates mechanisms to address the problem of high communication overheads on distributed memory machines; these mechanisms include tying synchronization to data access, chaotic access to data, prefetching of data, and pushing of data to remote processors. SAM has been implemented on the CM-5, Intel iPSC/860 and Paragon, IBM SP1, and networks of workstations running PVM. SAM applications run on all these platforms without modification. This paper provides an extensive analysis on several complex scientific algorithms written in SAM on a variety of hardware platforms. We find that the performance of these SAM applications depends fundamentally on the scalability of the underlying parallel algorithm, and whether the algorithm's communication requirements can be satisfied by the hardware. Our experience suggests that SAM is successful in allowing programmers to use distributed memory machines effectively with much less programming effort than required today.