Multiprocessor systems programming in a high-level data-flow language

  • J. L. Gaudiot
  • L. T. Lee
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 258)


The data-flow model of computation is an attractive methodology for multiprocessor programming for it offers the potential for unlimited parallelism detection at no programmer's expense. It is here applied to a distributed architecture based on a commercially available microprocessor (the Inmos Transputer). In this project, we have integrated the high-level data driven principles of scheduling within the Transputer architecture so as to provide high programmability of our multicomputer system. A complete programming environment which translates a complex data-flow program graph into occam has been developed and is presented in this paper. We here describe in detail the mapping from the SISAL high-level constructs into the low-level mechanisms of the Transputer (synchronization, structure representation, etc.). The partitioning issues (granularity of the graph) are presented and several solutions based upon both data-flow analysis (communication costs) and program syntax (program structure) are proposed and have been implemented in our programming environment. Finally, we present and analyze graph allocation and optimization schemes to improve the performance of the resulting occam program.


Communication Cost Lawrence Livermore National Laboratory Block Node Single Assignment Multiprocessor Architecture 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    Andrews, G.R., et al., "Concepts and Notations for Concurrent Programming," in Computing Surveys, Vol.15, No. 1, March 1983.Google Scholar
  2. [2]
    Arvind and Iannucci, R.A., "Two fundamental issues in multiprocessors: the data-flow solution," MIT Laboratory for Computer Science Technical Report MIT/LCS/TM-241, September 1983.Google Scholar
  3. [3]
    Arvind, Gostelow, K.P., and Plouffe, W., "An asynchronous programming language and computing machine," TR 114a, Department of Information and Computer Science, University of California, Irvine, December 1978.Google Scholar
  4. [4]
    Backus, J., "Can programming be liberated from the von Neumann style? A functional style and its algebra of programs," in Comm. ACM 21, 8 (Aug. 1978), pp. 613–641.Google Scholar
  5. [5]
    Dennis, J.B., "First version of a data flow procedure language," in Programming Sym.: Proc. Colloque sur la Programmation (Paris, France, Apr. 1974), B. Robinet, Ed., Lecture notes in Computer Science, vol. 19, Springer-Verlag, New York, 1974, pp. 362–376.Google Scholar
  6. [6]
    Gaudiot, J.L., Dubois, M., Lee, L.T., and Tohme, N., "The TX16: a highly programmable multimicroprocessor architecture," in IEEE Micro, October 1986.Google Scholar
  7. [7]
    Gaudiot, J.L, Vedder, R.W., Tucker, G.K, Finn, D., and Campbell, M.L., "A Distributed VLSI Architecture for Efficient Signal and Data Processing," in IEEE Transactions on Computers, Special Issue on Distributed Computing Systems, December 1985.Google Scholar
  8. [8]
    Gaudiot, J.L., "Methods for handling structures in data-flow systems," in Proc. of the 12th International Symposium on Computer Architecture, Boston, Massachusetts, June 1985.Google Scholar
  9. [9]
    Gaudiot, J.L., and Dubois, M., "Allocation and partitioning issues in a hierarchically structured multiprocessor system," USC CRI Technical Report, March 1985.Google Scholar
  10. [10]
    Gehringer, E.F., et al., "The Cm* Testbed," in IEEE Computer, October 1982.Google Scholar
  11. [11]
    Gurd, J.R., Kirkham, C.C., and Watson, I., "The Manchester data-flow computer," in Communications of the ACM, Vol. 28, Number 1, January 1985, pp. 34–52.Google Scholar
  12. [12]
    Hoare, C.A.R., "Communicating sequential processes," in Communications of the ACM, Vol. 21, Number 8, August 1978.Google Scholar
  13. [13]
    Inmos, Ltd., "Occam Programming System: Reference Manual," Colorado Springs, CO, 1984Google Scholar
  14. [14]
    May, D., "Occam," Inmos technical notes, 1983Google Scholar
  15. [15]
    McGraw, J., and Skedzielewski, S., "SISAL: Streams and Iteration in a Single Assignment Language, Language Reference Manual, Version 1.2," Lawrence Livermore National Laboratory Technical Report M-146, March 1985.Google Scholar
  16. [16]
    McGraw, J.R., "Data-flow computing: the VAL language," ACM Transactions on Programming Languages and Systems 4, 1 (1982), pp. 44–82.Google Scholar
  17. [17]
    Syre, J.C., Comte, D., and Hifdi, N., "Pipelining, parallelism and asynchronism in the LAU system," in Proc. 1977 Int. Conf. Parallel Processing, Aug. 1977, pp. 87–92.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1987

Authors and Affiliations

  • J. L. Gaudiot
    • 1
  • L. T. Lee
    • 1
  1. 1.Computer Research Institute Department of Electrical Engineering — SystemsUniversity of Southern CaliforniaLos Angeles

Personalised recommendations