Welcome to the new version of CaltechAUTHORS. Login is currently restricted to library staff. If you notice any issues, please email coda@library.caltech.edu
Published April 25, 2001 | Submitted
Report Open

Affinity: A Concurrent Programming System for Multicomputers

Abstract

Affinity is an experiment to explore a simple, convenient, and expressive programming model that provides adequate power for complex programming tasks while setting few constraints on potential concurrency. Although the programmer is required to formulate a computational problem explicitly into medium-sized pieces of data and code, most of the additional functions necessary for concurrent execution are implicit. The execution of the light-weight, reactive processes, called actions, implicitly induces atomicity and consistency of data modifications. The programmer accesses shared data structures in a shared-memory fashion, but without the need for explicit locking to manage the problems of concurrent access and mutual exclusion. Program control flow is distributed and implicit. The name given to the programming model, Affinity, has a definition, "causal connection or relationship," that is fitting to the way programs are structured and scheduled. Affinity consistency and coherence properties provide a tractable discipline for the dangerous power of a concurrent, shared-memory programming style. Existing programming complexity-management techniques such as object-oriented languages can be used in this multicomputer environment. Affinity programs can compute consistent and correct results despite staleness of data, and asynchrony and nondeterminism in execution of code. Program correctness is invariant under replication, or cloning, of actions. This aspect of the model yields a simple and robust mechanism for fault- tolerance. The practicality of the Affinity programming model has been demonstrated by an implementation on a second-generation multicomputer, the Ametek S/2010. The implementation is distributed, scalable, and relatively insensitive to network latency. Affinity has demonstrated reasonable efficiency and performance for computations with tens of processing nodes, hundreds of actions, and thousands of shared data structures.

Additional Information

© 1992 by Craig S. Steele. California Institute of Technology. Submitted May 27, 1992. 1 would particularly like to thank my research advisor, Chuck Seitz, for his patience, impatience, and insistence that simplicity is the essence of good research. The other members of my examining committee, Yaser Abu-Mostafa, Mani Chandy, Doug Rees, and Steve Taylor, deserve gratitude for volunteering to plow through the muddy fields of another persons mind. I owe incalculable debt to past and present students in t he group who have persisted in attempting to penetrate the equally baffling depths of concurrent systems design and my exposition: Wen-King Su, Don Speck, Jakov Seizović, Lena Peterson, Mike Pertel, John Ngai, Sven Mattisson, Charles Flaig, Nanette Boden, and particularly Bill Athas, for his services in his roles as officemate, Amos Throop crewmember, and consulting adventurer. Without the help of Arlene DesJardina, we'd all be... well, without. I am indebted to Chris Lee for consorting with daemons on my behalf. I owe special thanks to Laura. Jones for her proofreading and many helpful suggestions. I'd like to thank my parents and aunt for their support and love, and my brother for tolerating a near-permanent database bug while I wrote this thesis. My sons Benjamin and Quinton are constant reminders of the innate power of inquiry; their joy in discovery is a continuing inspiration. The small children described in this section were sponsored in large part by my wife, Vicky, who is also the monitoring agency. The research described in this thesis was sponsored in part by the Defense Advanced Research Projects Agency (DARPA). Submicron Systems Architecture Project.

Attached Files

Submitted - 92-08a.pdf

Submitted - 92-08a.ps

Files

92-08a.pdf
Files (17.6 MB)
Name Size Download all
md5:ad5c668fde19b0002b5adb23d9dcdab7
8.3 MB Preview Download
md5:f4be4ddae200765f772e60424f3b1671
9.3 MB Download

Additional details

Created:
August 20, 2023
Modified:
January 13, 2024