Communication-passing style for coordination languages
- 115 Downloads
Coordination languages for parallel and distributed systems specify mechanisms for creating tasks and communicating data among them. These languages typically assume that (a) once a task begins execution on some processor, it will remain resident on that processor throughout its lifetime, and (b) communicating 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 processor where the data resides.
Communication-passing style is closely related to continuation-passing style (CPS), a useful transformation for compiling functional languages. Just as CPS eliminates implicit call-return sequences, CmPS eliminates implicit inter-processor data communication and synchronization requests. In a CmPS-transformed program, only continuations (i.e., control contexts) are transmitted across machines; all synchronization and data communication occurs locally. Besides providing significant optimization opportunities, CmPS is a natural representation for implementations on networks of workstations.
KeywordsOperational Semantic Transition Rule Bandwidth Requirement Address Space Shared Environment
Unable to display preview. Download preview PDF.
- 1.A. Appel, Compiling with Continuations, Cambridge University Press, 1992.Google Scholar
- 3.L. Cardelli, A Language with Distributed Scope, in Proceedings of the 22nd ACM Symposium on Principles of Programming Languages, New York, 1995, ACM, pp. 286–298.Google Scholar
- 6.M. Felleisen, The Theory and Practice of First-Class Prompts, in 15th ACM Symposium on Principles of Programming Languages, 1988, pp. 180–190.Google Scholar
- 7.M. Felleisen and D. Friedman, Control Operators, the SECD-machine, and the Lambda-calculus, in 3rd Working Conference on the Formal Description of Programming Concepts, North-Holland, 1986, pp. 193–219.Google Scholar
- 8.—, A Calculus for Assignments in Higher-Order Languages, in Proceedings of the 14th ACM Symposium on Principles of Programming Languages, 1987, pp. 314–325.Google Scholar
- 9.C. Flanagan and M. Felleisen, The Semantics of Future and Its Use in Program Optimization, in Proceedings of the 12nd ACM Symposium on Principles of Programming Languages, 1995, pp. 290–220.Google Scholar
- 10.C. Flanagan, A. Sabry, B. Duba, and M. Felleisen, The Essence of Compiling with Continuations, in 1993 ACM Symposium on Programming Language Design and Implementation, 1993, pp. 237–247.Google Scholar
- 11.D. Gelernter and D. Kaminsky, Supercomputing out of Recycled Garbage: Preliminary Experience with Piranha, in Proceedings of the 6th ACM International Conference on Supercomputing, July 1992, pp. 417–427.Google Scholar
- 13.W. Hsieh, P. Wang, and W. Weihl, Computation Migration: Enhancing Locality for Distributed-Memory Parallel Systems, in The 4th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, New York, May 1993, ACM, pp. 239–249.Google Scholar
- 14.S. Jagannathan and S. Weeks, Analyzing Stores and References in a Parallel Symbolic Language, in Proceedings of the 1994 ACM International Conference on Lisp and Functional Programming, 1994, pp. 294–305.Google Scholar
- 16.R. Kelsey and P. Hudak, Realistic Compilation by Program Transformation, in Proceedings of the 16th ACM Symposium on Principles of Programming Languages, 1989, pp. 281–292.Google Scholar
- 17.R. Mohr, D. Kranz, and R. Halstead, Lazy Task Creation: A Technique for Increasing the Granularity of Parallel Programs, in Proceedings of the 1990 ACM Conference on Lisp and Functional Programming, June 1990.Google Scholar
- 18.L. Moreau, The Semantics of Scheme with Future, in Proceedings of the 1996 ACM International Conference on Functional Programming, 1996, pp. 146–156.Google Scholar
- 19.M. Powell and B. Miller, Process Migration in DEMOS/MP, in Proceedings of the 9th ACM Symposium on Operating Systems Principles, New York, 1983, ACM, pp. 110–119.Google Scholar
- 21.Z. Shao and A. Appel, Space-Efficient Closure Representations, in Proceedings of the 1994 ACM Symposium on Lisp and Functional Programming, 1994, pp. 150–161.Google Scholar