I-structures: data structures for parallel computing

Authors:
Arvind, Rishiyur S. Nikhil, Keshav K. Pingali
Published:
ACM Transactions on Programming Languages and Systems, volume 11, issue 4, pp. 598-632. October 1989.
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.

BibTeX:
@article{arvind1989,
  title = {{I-structures: data structures for parallel computing}},
  author = {Arvind and Rishiyur S. Nikhil and Keshav K. Pingali},
  journal = {ACM Transactions on Programming Languages and Systems},
  volume = {11},
  issue = {4},
  year = 1989,
  month = 10,
  doi = {10.1145/69558.69562},
}