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
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Andrews, G.R., et al., "Concepts and Notations for Concurrent Programming," in Computing Surveys, Vol.15, No. 1, March 1983.
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.
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.
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.
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.
Gaudiot, J.L., Dubois, M., Lee, L.T., and Tohme, N., "The TX16: a highly programmable multimicroprocessor architecture," in IEEE Micro, October 1986.
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.
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.
Gaudiot, J.L., and Dubois, M., "Allocation and partitioning issues in a hierarchically structured multiprocessor system," USC CRI Technical Report, March 1985.
Gehringer, E.F., et al., "The Cm* Testbed," in IEEE Computer, October 1982.
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.
Hoare, C.A.R., "Communicating sequential processes," in Communications of the ACM, Vol. 21, Number 8, August 1978.
Inmos, Ltd., "Occam Programming System: Reference Manual," Colorado Springs, CO, 1984
May, D., "Occam," Inmos technical notes, 1983
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.
McGraw, J.R., "Data-flow computing: the VAL language," ACM Transactions on Programming Languages and Systems 4, 1 (1982), pp. 44–82.
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.
Author information
Authors and Affiliations
Editor information
Rights 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