I-structures: data structures for parallel computing
TLDR
It is difficult to achieve elegance, efficiency, and parallelism simultaneously in functional programs that manipulate large data structures, and it is shown that even in the context of purely functional languages, I-structures are invaluable for implementing functional data abstractions.Abstract:
It is difficult to achieve elegance, efficiency, and parallelism simultaneously in functional programs that manipulate large data structures. We demonstrate this through careful analysis of program examples using three common functional data-structuring approaches-lists using Cons, arrays using Update (both fine-grained operators), and arrays using make-array (a “bulk” operator). We then present I-structure as an alternative and show elegant, efficient, and parallel solutions for the program examples in Id, a language with I-structures. The parallelism in Id is made precise by means of an operational semantics for Id as a parallel reduction system. I-structures make the language nonfunctional, but do not lose determinacy. Finally, we show that even in the context of purely functional languages, I-structures are invaluable for implementing functional data abstractions.read more
Citations
More filters
Journal ArticleDOI
Hybrid Dataflow/von-Neumann Architectures
TL;DR: This paper classifies hybrid dataflow/von-Neumann models according to two different taxonomies: one based on the execution model used for inter- and intrablock execution, and the otherbased on the integration level of both control and dataflow execution models.
Proceedings ArticleDOI
Global analysis for partitioning non-strict programs into sequential threads
TL;DR: A new solution to the problem of compiling aneager, non-strict language into multiple se-quential threads is presented using an in-termediate program form developed for the programming language Id, and it is believed this method is also appropriate for lazy, purely functional languages such as Haskell.
Journal ArticleDOI
Architectures for statically scheduled dataflow
TL;DR: A class of parallel architectures consisting of Von Neumann processors and one or more shared memories, where the order of shared-memory accesses is determined at compile time and enforced at run time is described.
Journal ArticleDOI
Concurrent Aggregates (CA)
TL;DR: This paper describes and evaluates the use of aggregates in a programming langauge, and evaluates language support in CA for composing multiaccess data abstractions (delegation, first-class messages, and first- class and user-defined continuations).
Book ChapterDOI
FlowPools: A Lock-Free Deterministic Concurrent Dataflow Abstraction
TL;DR: This paper presents the design and implementation of a fundamental data structure for composable deterministic parallel dataflow computation through the use of functional programming abstractions, and provides a correctness proof, showing that the implementation is linearizable, lock-free, and deterministic.
References
More filters
Book
The implementation of functional programming languages
Peyton Jones,L Simon +1 more
TL;DR: My 1987 book is now out of print, but it is available here in its entirety in PDF form, in one of two formats: single-page portrait double-page landscape and fully searchable, thanks to OCR and Norman Ramsey.
Proceedings ArticleDOI
Making data structures persistent
TL;DR: This paper develops simple, systematic, and efficient techniques for making linked data structures persistent, and uses them to devise persistent forms of binary search trees with logarithmic access, insertion, and deletion times and O (1) space bounds for insertion and deletion.
Journal ArticleDOI
Advanced compiler optimizations for supercomputers
David Padua,Michael Wolfe +1 more
TL;DR: Compilers for vector or multiprocessor computers must have certain optimization features to successfully generate parallel code to be able to operate on parallel systems.
Proceedings ArticleDOI
Dependence graphs and compiler optimizations
TL;DR: This paper defines such graphs and discusses two kinds of transformations, simple rewriting transformations that remove dependence arcs and abstraction transformations that deal more globally with a dependence graph.
Journal ArticleDOI
Executing a program on the MIT tagged-token dataflow architecture
Arvind,Rishiyur S. Nikhil +1 more
TL;DR: An overview of current thinking on dataflow architecture is provided by describing example Id programs, their compilation to dataflow graphs, and their execution on the TTDA, a multiprocessor architecture.