Results 11 -
15 of
15
An Object-Oriented Library for Shared-Memory Parallel Simulations
, 1996
"... Programming shared-memory multiprocessor systems is becoming increasingly difficult as the gap between memory speed and processor speed increases. At the same time, this class of computer—based on standard microprocessors—is becoming increasingly common as an alternative to traditional mainframes an ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
Programming shared-memory multiprocessor systems is becoming increasingly difficult as the gap between memory speed and processor speed increases. At the same time, this class of computer—based on standard microprocessors—is becoming increasingly common as an alternative to traditional mainframes and supercomputers. Programs that are not sympathetic to caches can perform poorly on such systems. Problems include false sharing (unrelated data in a cache block, resulting in coherence misses), inadequate blocking (processing data as often as possible before it moves out of the cache) and poor exploitation of prefetch (fetching data before it is needed). This research addresses the problem of accommodating changes in memory hierarchy cost and cache characteristics through an object-oriented C++ library called OOSH (Object-Oriented Library for Shared Memory). OOSH includes low-level allocators which pad and align objects to cache block boundaries, and primitives for launching processes, locking and synchronization. OOSH also provides support for object blocking—an object-oriented version of blocking, a technique traditionally used
A Data Parallel Programming Model Based on Distributed Objects
, 2002
"... This paper proposes a data parallel programming model suitable for loosely synchronous, irregular applications. At the core of the model are distributed objects that express non-trivial data parallelism. Sequential objects express independent computations. ..."
Abstract
- Add to MetaCart
This paper proposes a data parallel programming model suitable for loosely synchronous, irregular applications. At the core of the model are distributed objects that express non-trivial data parallelism. Sequential objects express independent computations.
Object-Oriented Programming and Parallelism
"... This paper outlines the Mentat programming language, its implementation, and several of its applications. The Mentat programming language is a parallel extension of C++ which separates the responsibility for process generation between the programmer and the compiler. The programmer specifies classes ..."
Abstract
- Add to MetaCart
This paper outlines the Mentat programming language, its implementation, and several of its applications. The Mentat programming language is a parallel extension of C++ which separates the responsibility for process generation between the programmer and the compiler. The programmer specifies classes of active 6 objects which are to be instantiated with their own threads of execution, while the compiler automatically provides proper process synchronization and communication. Because part of the programmer's burden is taken by the compiler, Mentat is easier to use than systems in which process coordination is explicitly specified by the programmer. The paper describes four of the numerous successful applications of Mentat which show that Mentat is not only easy-to-use parallel OOP environment, but also that its performance is high. One of the applications, DNA and protein sequence comparison, is characterized with high data-parallelism and relatively simple master-worker coordination. For this type of problem the higher-level Mentat solution with automatically generated coordination has reached 90-95 percent of the efficiency of a hand-coded process coordination. The other three Mentat applications presented in the paper prove that Mentat can produce a considerable speed-up with different types of computationally intensive problems using diverse parallel platforms; these applications are a matrix algebra library, a library of stencil algorithms, and an implementation of the finite element method. The paper ends with an outline of the Legion project which is evolving from Mentat at the University of Virginia. Legion is aiming at converting available fast networks of eventually geographically distributed heterogeneous resources in a large virtual parallel computing recours...

