Skip to main content

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

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 258))

Abstract

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.

This material is based upon work supported in part by the National Science Foundation under Grant No. CCR-8603772 and by the USC Faculty Research and Innovation Fund

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Andrews, G.R., et al., "Concepts and Notations for Concurrent Programming," in Computing Surveys, Vol.15, No. 1, March 1983.

    Google Scholar 

  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. 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. 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. 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. 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. 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. 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. 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. Gehringer, E.F., et al., "The Cm* Testbed," in IEEE Computer, October 1982.

    Google Scholar 

  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. Hoare, C.A.R., "Communicating sequential processes," in Communications of the ACM, Vol. 21, Number 8, August 1978.

    Google Scholar 

  13. Inmos, Ltd., "Occam Programming System: Reference Manual," Colorado Springs, CO, 1984

    Google Scholar 

  14. May, D., "Occam," Inmos technical notes, 1983

    Google Scholar 

  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. 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. 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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

J. W. de Bakker A. J. Nijman P. C. Treleaven

Rights and permissions

Reprints and permissions

Copyright information

© 1987 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Gaudiot, J.L., Lee, L.T. (1987). Multiprocessor systems programming in a high-level data-flow language. In: de Bakker, J.W., Nijman, A.J., Treleaven, P.C. (eds) PARLE Parallel Architectures and Languages Europe. PARLE 1987. Lecture Notes in Computer Science, vol 258. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-17943-7_125

Download citation

  • DOI: https://doi.org/10.1007/3-540-17943-7_125

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-17943-6

  • Online ISBN: 978-3-540-47144-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics