Type-based primitives for distributed data structures: a functional approach

  title={Type-based primitives for distributed data structures: a functional approach},
  author={Tyng-Ruey Chuang},
  journal={2003 International Conference on Parallel Processing Workshops, 2003. Proceedings.},
  • Tyng-Ruey Chuang
  • Published 27 October 2003
  • Computer Science, Mathematics
  • 2003 International Conference on Parallel Processing Workshops, 2003. Proceedings.
We formulate type-based primitive functions for distributed processing of complex data structures. These primitives are derived directly from the type definitions of the data structures, and they naturally lead to distributed implementations. Our main results are: 1) a distribution model to support efficient aggregate operations over complex data structures. The model is simple yet general, and easy to implement. 2) A parallel functional programming environment assembled from readily available… 

Tables from this paper


Supporting dynamic data structures on distributed-memory machines
An execution model for supporting programs that use pointer-based dynamic data structures is described that uses a simple mechanism for migrating a thread of control based on the layout of heap-allocated data and introduces parallelism using a technique based on futures and lazy task creation.
An experimental APL compiler for a distributed memory parallel machine
An experimental APL compiler has been developed for the IBM SP1 distributed memory parallel machine and exploits data parallelism in APL programs based on parallel high-level primitives.
NESL: A Nested Data-Parallel Language
NESL is intended to be used as a portable interface for programming a variety of parallel and vector supercomputers, and as a basis for teaching parallel algorithms, and several examples of algorithms coded in the language are described.
Lazy task creation: a technique for increasing the granularity of parallel programs
This paper rejects the simpler load-based inlining method, where tasks are combined based on dynamic load level, in favor of the safer and more robust lazy task creation method, which allows efficient execution of naturally expressed algorithms of a substantially finer grain than possible with previous parallel Lisp systems.
Functional programming for loosely-coupled multiprocessors
  • P. Kelly
  • Computer Science
    Research monographs in parallel and distributed computing
  • 1989
This book proposes a new high level approach to programming that addresses the pragmatic issue of how a computation is distributed across a machine, based on functional programming and has significant advantages over existing comparable approaches, extending the domain of functional programming to include computer architectures in which communication costs are not negligible.
Algorithmic Skeletons: Structured Management of Parallel Computation
This book introduces a new approach to the design and implementation of software systems which will help users of large scale parallel systems coordinate many concurrent activities toward a single goal and proposes a selection of independent algorithmic skeletons which describes the structure of a particular style of algorithm.
Architecture-independent parallel computation
It is shown that the Bird-Meertens formalism is universal over all four architecture classes and that nontrivial restrictions of functional programming languages exist that can be efficiently executed on disparate architectures.
Multiprocessor execution of functional programs
  • B. Goldberg
  • Computer Science
    International Journal of Parallel Programming
  • 2005
This paper describes research that was performed to demonstrate that multiprocessor execution of functional programs on current multip rocessors is feasible, and results in a significant reduction in their execution times.
The case for high-level parallel programming in ZPL
ZPL is a high level language that offers competitive performance and portability, as well as programming conveniences lacking in low level approaches, and simplifies the task of programming for parallel computers-without sacrificing efficiency.
Connection Machine Lisp: fine-grained parallel symbolic processing
A new data structure, the xapping, that is like a sparse array whose elements can be processed in parallel, suitable for implementation by fine.grained parallel computers as the Connection Machine System and NON- VON.