Results 1 -
5 of
5
CHAOS++: A Runtime Library for Supporting Distributed Dynamic Data Structures
- GREGORY V. WILSON, EDITOR, PARALLEL PROGRAMMING USING C
, 1995
"... Traditionally, applications executed on distributed memory architectures in single-program multiple-data (SPMD) mode use distributed (multi-dimensional) data arrays. Good performance has been achieved by applying runtime techniques to such applications executing in a loosely synchronous manner. Howe ..."
Abstract
-
Cited by 7 (2 self)
- Add to MetaCart
Traditionally, applications executed on distributed memory architectures in single-program multiple-data (SPMD) mode use distributed (multi-dimensional) data arrays. Good performance has been achieved by applying runtime techniques to such applications executing in a loosely synchronous manner. However, many applications utilize language constructs such as pointers to synthesize dynamic complex data structures, such as linked lists, trees and graphs, with elements consisting of complex composite data types. Existing runtime systems that solely rely on global indices cannot be used for these applications, as no global names or indices are imposed upon the elements of these data structures. CHAOS++ is a portable object-oriented runtime library that supports applications using dynamic distributed data structures, including both arrays and pointer-based data structures. In particular, CHAOS++ deals with complex data types and pointer-based data structures by providing mobile objects and gl...
A Calculus for Exploiting Data Parallelism on Recursively Defined Data
- In Proc. International Workshop on Theory and Practice on Parallel Programming, LNCS
, 1994
"... Array based data parallel programming can be generalized in two ways to make it an appropriate paradigm for parallel processing of general recursively defined data. The first is the introduction of a parallel evaluation mechanism for dynamically allocated recursively defined data. It achieves the ef ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
(Show Context)
Array based data parallel programming can be generalized in two ways to make it an appropriate paradigm for parallel processing of general recursively defined data. The first is the introduction of a parallel evaluation mechanism for dynamically allocated recursively defined data. It achieves the effect of applying the same function to all the subterms of a given datum in parallel. The second is a new notion of recursion, which we call parallel recursion, for parallel evaluation of recursively defined data. In contrast with ordinary recursion, which only uses the final results of the recursive calls of its immediate subterms, the new recursion repeatedly transforms a recursive datum represented by a system of equations to another recursive datum by applying the same function to each of the equation simultaneously, until the final result is obtained. This mechanism exploits more parallelism and achieves significant speedup compared to the conventional parallel evaluation of recursive ...
SPMD Execution in the Presence of Dynamic Data Structures
- IN COMPILER OPTIMIZATIONS FOR SCALABLE PARALLEL SYSTEMS LANGUAGES
, 2001
"... ..."
Parallel Functional Programming on Recursively Defined Data via Data-Parallel Recursion
, 1993
"... This article proposes a new language mechanism for data-parallel processing of dynamically allocated recursively de ned data. Different from the conventional array-based dataparallelism, it allows parallel processing of general recursively defined data such as lists or trees in a functional way. Thi ..."
Abstract
- Add to MetaCart
This article proposes a new language mechanism for data-parallel processing of dynamically allocated recursively de ned data. Different from the conventional array-based dataparallelism, it allows parallel processing of general recursively defined data such as lists or trees in a functional way. This is achieved by representing a recursively defined datum as a system of equations, and defining new language constructs for parallel transformation of a system of equations. By integrating them with a higher-order functional language, we obtain a functional programming language suitable for describing data-parallel algorithms on recursively de ned data in a declarative way. The language has an ML style polymorphic type system and a type sound operational semantics that uniformly integrates the parallel evaluation mechanism with the semantics of a typed functional language. We also show the intended parallel execution model behind the formal semantics, assuming an idealized distributed memory mu...