Advertisement

Communication-passing style for coordination languages

  • Suresh Jagannathan
Regular Papers
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1282)

Abstract

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.

Keywords

Operational Semantic Transition Rule Bandwidth Requirement Address Space Shared Environment 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    A. Appel, Compiling with Continuations, Cambridge University Press, 1992.Google Scholar
  2. 2.
    A. D. Birrell and B. Nelson, Implementing remote procedure call, ACM Transactions on Computer Systems, 2 (1984), pp. 39–59.CrossRefGoogle Scholar
  3. 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
  4. 4.
    N. Carriero and D. Gelernter, Linda in Context, Communications of the ACM, 32 (1989), pp. 444–458.CrossRefGoogle Scholar
  5. 5.
    H. Cejtin, S. Jagannathan, and R. Kelsey, Higher-Order Distributed Objects, ACM Transactions on Programming Languages and Systems, 17 (1995), pp. 704–739.CrossRefGoogle Scholar
  6. 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. 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. 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. 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. 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. 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
  12. 12.
    R. Halstead, Multilisp: A Language for Concurrent Symbolic Computation, Transactions on Programming Languages and Systems, 7 (1985), pp. 501–538.CrossRefGoogle Scholar
  13. 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. 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
  15. 15.
    E. Jul, H. Levy, N. Hutchison, and A. Black, Fine-Grained Mobility in the Emerald System, ACM Transactions on Computer Systems, 6 (1988), pp. 109–133.CrossRefGoogle Scholar
  16. 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. 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. 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. 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
  20. 20.
    A. Rogers, M. Carlisle, J. Reppy, and L. Hendren, Supporting Dynamic Data Structures on Distributed-Memory Machines, ACM Transactions on Programming Languages and Systems, 17 (1995), pp. 233–263.CrossRefGoogle Scholar
  21. 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

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • Suresh Jagannathan
    • 1
  1. 1.NEC Research InstituteComputer Science ResearchPrinceton

Personalised recommendations