Type Systems for Distributed Data Structures

This research was conducted by Ben Liblit and Alex Aiken. The paper has been published in the 27th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL ’00).

Abstract

Distributed-memory programs are often written using a global address space: any process can name any memory location on any processor. Some languages completely hide the distinction between local and remote memory, simplifying the programming model at some performance cost. Other languages give the programmer more explicit control, offering better potential performance but sacrificing both soundness and ease of use.

Through a series of progressively richer type systems, we formalize the complex issues surrounding sound computation with explicitly distributed data structures. We then illustrate how type inference can subsume much of this complexity, letting programmers work at whatever level of detail is needed. Experiments conducted with the Titanium programming language show that this can result in easier development and significant performance improvements over manual optimization of local and global memory.

Full Papers

The full paper exists in several forms:

Conference Paper
As published in the POPL ’00 conference proceedings. Available in PDF, PostScript, and as a BibTex citation.
Technical Report
Augments the conference paper with a thorough proof of soundness. Available in various formats and as a BibTex citation.
Master’s Project Report
The most recent incarnation. Features a broader survey of related work, and fixes some minor typographic errors found in earlier versions. Available in PDF, PostScript, and as a BibTex citation.

Presentation Slides

This research was presented at POPL ’00 in Boston, Massachusetts. Slides from that talk are available as a PDF, PostScript, or PowerPoint document.