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).
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.
The full paper exists in several forms:
This research was presented at POPL ’00 in Boston, Massachusetts. Slides from that talk are available as a PDF, PostScript, or PowerPoint document.