Continuation-based transformations for coordination languages

Authors
Citation
S. Jagannathan, Continuation-based transformations for coordination languages, THEOR COMP, 240(1), 2000, pp. 117-146
Citations number
35
Categorie Soggetti
Computer Science & Engineering
Journal title
THEORETICAL COMPUTER SCIENCE
ISSN journal
03043975 → ACNP
Volume
240
Issue
1
Year of publication
2000
Pages
117 - 146
Database
ISI
SICI code
0304-3975(20000606)240:1<117:CTFCL>2.0.ZU;2-T
Abstract
Coordination languages for parallel and distributed systems specify mechani sms for creating tasks and communicating data among them. These languages t ypically assume that (a) once a task begins execution on some processor, it will remain resident on that processor throughout its lifetime, and (b) co mmunicating shared data among tasks is through some form of message-passing and data migration. In this paper, we investigate an alternative approach to understanding coordination. Communication-passing style (CmPS) refers to a coordination semantics in which data communication is always undertaken by migrating the continuation of the task requiring the data to the process or where the data resides. Communication-passing style is closely related to continuation-passing styl e (CPS), a useful transformation for compiling functional languages. Just a s CPS eliminates implicit call-realm sequences, CmPS eliminates implicit in ter-processor data communication and synchronization requests. In a CmPS-tr ansformed program, only continuations (i.e., control contexts) are trans tr ansmitted across machines: all synchronization and data communication occur s locally. Besides providing significant optimization opportunities, CmPS i s a natural representation for implementations on networks of workstations. This paper presents several operational semantics for a coordination langua ge that supports first-class (shared) distributed data repositories. The co mputation sub-language considered is an untyped call-by-value functional la nguage similar to pure scheme. The first semantics describes a conventional synchronous message-passing implementation; the second is a formulation of a CmPS implementation: and, the third refines this implementation to suppo rt computation migration, a technique to lazily migrate control state. Usin g computation migration, an implementation "distributes" a continuation amo ng multiple machines reducing bandwidth requirements needed to support thre ad mobility. We prove the equivalence of all three systems and describe opt imizations and implementation issues that arise from using a CmPS-driven co ordination language. (C) 2000 Published by Elsevier Science B.V. All rights reserved.