Language constructs and runtime systems for compositional parallel programming

  • Ian Foster
  • Carl Kesselman
Keynote Addresses
Part of the Lecture Notes in Computer Science book series (LNCS, volume 854)


In task-parallel programs, diverse activities can take place concurrently, and communication and synchronization patterns are complex and not easily predictable. Previous work has identified compositionality as an important design principle for task-parallel programs. In this paper, we discuss alternative approaches to the realization of this principle. We first provide a review and critical analysis of Strand, an early compositional programming language. We examine the strengths of the Strand approach and also its weaknesses, which we attribute primarily to the use of a specialized language. Then, we present an alternative programming language framework that overcomes these weaknesses. This framework uses simple extensions to existing sequential languages (C++ and Fortran) and a common runtime system to provide a basis for the construction of large, task-parallel programs. We also discuss the runtime system techniques required to support these languages on parallel and distributed computer systems.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Ackerman, W.: Data flow Languages. Computer 15(2), (1982), 15–25Google Scholar
  2. 2.
    Chandy, K.M., Foster, I.: A deterministic notation for cooperating processes. Preprint, Argonne National Laboratory (1993)Google Scholar
  3. 3.
    Chandy, K.M., Kesselman, C.: CC++: A declarative concurrent object-oriented programming notation. Research Directions in Object Oriented Programming, MIT Press (1993)Google Scholar
  4. 4.
    Chandy, K.M., Kesselman, C.: The derivation of compositional programs. Proc. 1992 Joint Intl Conf. and Symp. on Logic Programming, MIT Press (1992)Google Scholar
  5. 5.
    Chandy, K.M., Misra, J.: Parallel Program Design. Addison-Wesley (1988)Google Scholar
  6. 6.
    Chandy, K.M., Taylor, S.: An Introduction to Parallel Programming. Jones and Bartlett (1992)Google Scholar
  7. 7.
    Chapman, B., Mehrotra, P., Zima, H.: Programming in Vienna Fortran. Scientific Programming 1(1) (1992) 31–50Google Scholar
  8. 8.
    Clark, K., Gregory, S.: A relational language for parallel programming. Proc. 1981 ACM Conf. on Functional Programming Languages and Computer Architectures (1981) 171–178Google Scholar
  9. 9.
    Fox, G., Hiranandani, S., Kennedy, K., Koelbel, C., Kremer, U., Tseng, C., Wu, M.: Fortran D language specification. Rice University TR90-141 (1990)Google Scholar
  10. 10.
    Foster, I., Avalani, B., Choudhary, A., Xu, M., A compilation system that integrates High Performance Fortran and Fortran M. Proc. 1994 Scalable High Performance Computing Conf., IEEE Computer Science Press (1994) 293–300Google Scholar
  11. 11.
    Foster, I., Chandy, K.M.: Fortran M: A language for modular parallel programming. J. Parallel and Distributed Computing (to appear)Google Scholar
  12. 12.
    Foster, I., Kesselman, C., Tuecke, S.: Nexus: Runtime support for task-parallel programming languages. Preprint, Argonne National Laboratory (1994)Google Scholar
  13. 13.
    Foster, I., Taylor, S.: Strand: New Concepts in Parallel Programming. Prentice Hall (1989)Google Scholar
  14. 14.
    Hoare, C.A.R.: Monitors: An operating system structuring concept. Commun. ACM 17(10) (1974) 549–557Google Scholar
  15. 15.
    Hoare, C.A.R.: Communicating Sequential Processes. Prentice Hall (1984)Google Scholar
  16. 16.
    Kesselman, C.: Implementing parallel programming paradigms in CC++. Proc. Workshop on Parallel Environments and Tools, SIAM (to appear)Google Scholar
  17. 17.
    Koelbel, C., Loveman, D., Schreiber, R., Steele, G., Zosel, M.: The High Performance Fortran Handbook. MIT Press (1994)Google Scholar
  18. 18.
    von Eicken, T., Culler, D., Goldstein, S., Schauser, K.: TAM — A compiler controlled threaded abstract machine. J. Parallel and Distributed Computing (1992)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1994

Authors and Affiliations

  • Ian Foster
    • 1
  • Carl Kesselman
    • 2
  1. 1.Mathematics and Computer Science DivisionArgonne National LaboratoryArgonneUSA
  2. 2.Beckman InstituteCalifornia Institute of TechnologyPasadenaUSA

Personalised recommendations