An implementation of static functional process networks

  • Stuart Cox
  • Shell-Ying Huang
  • Paul Kelly
  • Junxian Liu
  • Frank Taylor
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 605)


To get high performance on a distributed-memory multicomputer at present and for the foreseeable future, some explicit control is needed. This paper describes work aimed at harnessing the power of the functional notation in exercising such control. We have developed a declarative annotation scheme which allows explicit control over process placement and communications. The language, called Caliban, has been implemented on a configurable, loosely coupled commercial multicomputer and we describe the compiler and run-time system.


functional programming process network declarative annotation transputer program transformation 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [AI 88]
    AI Limited. Strand-88 language definition. Technical report, AI Limited, Greycaine Rd. Watford, Herts, UK, 1988.Google Scholar
  2. [BvEG 87]
    [BvEG+87] H.P. Barendregt, M.C.J.D. van Eekelen, J.R.W. Glauert, J.R. Kennaway, M.J. Plasmeijer, and M.R. Sleep. Term graph rewriting. 1987. In [dBNT87, pages 141–158].Google Scholar
  3. [dBNT87]
    J.W. de Bakker, A.J. Nijman, and P.C. Treleaven, editors. Parle, Parallel Architectures and Languages Europe, volume II. Springer Verlag, June 1987. LNCS 259.Google Scholar
  4. [GHW90]
    Hugh Glaser, Pieter Hartel, and John Wild. A pragmatic approach to the analysis and compilation of lazy functional languages. In Proc. of the Workshop on Parallel and Distributed Processing, Sofia, 1990. North-Holland, 1990.Google Scholar
  5. [Gol88]
    Benjamin F. Goldberg. Multiprocessor Execution of Functional Programs. Research report, Yale University Department of Computer Science, April 1988.Google Scholar
  6. [Hud86]
    P. Hudak. Para-functional programming. IEEE Computer, pages 60–70, August 1986.Google Scholar
  7. [Hug84]
    J. Hughes. Why functional programming matters. Report 16, Programming Methodology Group, University of Göteborg and Chalmers Institute of Technology, Sweden, November 1984.Google Scholar
  8. [HWe90]
    P. Hudak and P. Wadler (editors). Report on the programming language Haskell, a non-strict purely functional language (Version 1.0). Technical Report YALEU/DCS/RR777, Yale University, Department of Computer Science, April 1990.Google Scholar
  9. [Kah74]
    G. Kahn. The semantics of a simple language for parallel programming. In Information Processing 74. North-Holland, 1974.Google Scholar
  10. [Kel89]
    Paul H.J. Kelly. Functional Programming for Loosely-coupled Multiprocessors. Pitman/MIT Press, 1989.Google Scholar
  11. [MD91]
    J. Magee and N. Dulay. A configuration approach to parallel programming. In Parle, Parallel Architectures and Languages Europe, volume II, pages 313–330. Springer Verlag, 1991. LNCS 506.Google Scholar
  12. [vEPS90]
    M.C.J.D. van Eekelen, M.J. Plasmeijer, and J.E.W. Smetsers. Parallel graph rewriting on loosely-coupled machine architectures. Technical report, Faculty of Computer Science and Mathematics, University of Nijmegen, February 1990.Google Scholar
  13. [Wad81]
    W.W. Wadge. An extensional treatment of dataflow deadlock. Theoretical Computer Science, 13:3–15, 1981.CrossRefGoogle Scholar
  14. [ZC90]
    Hans Zima and Barbara Chapman. Supercompilers for Parallel and Vector Computers. ACM Press, 1990.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1992

Authors and Affiliations

  • Stuart Cox
    • 1
  • Shell-Ying Huang
    • 1
    • 2
  • Paul Kelly
    • 1
  • Junxian Liu
    • 1
  • Frank Taylor
    • 1
  1. 1.Department of ComputingImperial CollegeLondonUK
  2. 2.School of Applied ScienceNan Yang Technological UniversitySingapore

Personalised recommendations