A Caltech Library Service

Affinity : a concurrent programming system for multicomputers


Steele, Craig S. (1992) Affinity : a concurrent programming system for multicomputers. Dissertation (Ph.D.), California Institute of Technology. doi:10.7907/syrm-sx30.


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.

Item Type:Thesis (Dissertation (Ph.D.))
Degree Grantor:California Institute of Technology
Division:Engineering and Applied Science
Major Option:Computer Science
Thesis Availability:Public (worldwide access)
Research Advisor(s):
  • Seitz, Charles L.
Thesis Committee:
  • Seitz, Charles L. (chair)
  • Rees, Douglas C.
  • Chandy, K. Mani
  • Abu-Mostafa, Yaser S.
  • Taylor, Stephen
Defense Date:27 May 1992
Record Number:CaltechETD:etd-08152007-074128
Persistent URL:
Default Usage Policy:No commercial reproduction, distribution, display or performance rights in this work are provided.
ID Code:3136
Deposited By: Imported from ETD-db
Deposited On:22 Aug 2007
Last Modified:16 Apr 2021 22:32

Thesis Files

PDF (Steele_cs_1992.pdf) - Final Version
See Usage Policy.


Repository Staff Only: item control page