Abstract
Dataflow models are free of side effects and have no notion of state or sequencing. Because these representations place a partial, as opposed to a total, ordering on the execution of their component operations, the concurrent aspects of computation are clearly revealed. The correspondence between dataflow graphs and purely functional programs allows computations to be expressed in a high-level functional language and subsequently transformed into a dataflow graph. This paper describes the use of dataflow models as an alternative control strategy for engineering analysis programs and contrasts them with traditional imperative approaches. The characteristics of functional languages are also described, as is their inherent parallelism, which may be realized by compilation into dataflow graphs. The application of functional languages to finite element programming is presented, which allows the alternating assembly and solution of system equations found in frontal solvers. Issues such as the incremental update of arrays and the simulation of state are also addressed.
Similar content being viewed by others
References
(1982) Special issue on data flow systems. Computer 15(2):February
Oxley, D. et al. (1984) Handbook of Software Engineering, Chap. 29 (Software Development for Data-Flow Machines). New York: Van Nostrand Reinhold
Babb II, R.G. (1984) Parallel processing with large-grain data flow techniques. Computer 17(7):55–61, July
Arvind; Culler, D.E. (1986) Dataflow architectures. Ann. Rev. Comput. Sci. 1:225–253
Arvind; Gostelow, K.P. (1982) The U-interpreter. Computer 15(2):42–49, Feburary
Ackerman, W.B. (1982) Data flow languages. Computer 15 (2):15–24, Feburary
Henderson, P. (1980) Functional Programming: Application and Implementation. Englewood Cliffs, NJ: Prentice-Hall
Wadge, W.W.; Ashcroft, E.A. (1985) LUCID, the Dataflow Programming Language, New York: Academic Press
Ackerman, W.B.; Dennis, J.B. (1979) VAL—A value-oriented algorithmic language: Preliminary reference manual. Technical Report LCS/TR-218, MIT Laboratory for Computer Science, June
Leth, J.W. (1979) An intermediate form for data flow programs. Technical Report MIT/LCS. TM-143, MIT Laboratory for Computer Science, November
Brock, J.D. (1978) Operational semantics of a data flow language. Technical Report MIT/LCS/TM-120, MIT Laboratory for Computer Science, December
Weng, K.-S. (1979) An abstract implementation for a generalized data flow language. Technical Report MIT/LCS/TR-218, MIT Laboratory for Computer Science, May
Todd, K.W. (1981) High-level VAL constructs in a static data flow machine. Technical Report MIT/LCS/TR-262, MIT Laboratory for Computer Science, June
McGraw, J.R. (1980) Data flow computing: Software development. IEEE Trans. Comput. C 29(12):1095–1103, December
McGraw, J.R. The VAL language: Description and analysis. ACM Trans. Prog. Lang. Syst. 4(1):44–82, January (1983)
McGraw, J.R. et al. (1983) SISAL—Streams and iteration in a single-assignment language. Language reference manual version 1.0, Lawrence Livermore National Laboratory, July
Gurd, J.R.; Kirkam, C.C.; Watson, I. (1985) The Manchester protype dataflow computer. Commun. ACM 28(1):34–52, January
Gurd, J.R. et al. (1987) Fine-grain parallel computing: The dataflow approach. In: Future Parallel Computers, (Eds: P. C. Treleaven; M. Vanneschi). pp. 82–152. Lecture Notes in Computer Science, Springer-Verlag
Arvind; Gostelow, K.P.; Plouffe, W. (1978) The (preliminary) Id report: An asynchronous programming language and computing machine. Technical Report 114, Department of Information and Computer Science, University of California, Irvine, May
Arvind (1988) Executing a program on the MIT tagged-token dataflow architecture. Computation Structures Group Memo 271, MIT Laboratory for Computer Science, June
Arvind; Thomas, R.E. (1981) I-structures: An efficient data type for functional languages. Technical Report MIT/LCS/TM-210, MIT Laboratory for Computer Science, October
Arvind; Ekanadham, K. (1987) Future scientific programming on parallel machines. Research Division 12856, IBM, June
Gostelow, K.P.; Thomas, R.E. (1980) Performance of a simulated dataflow computer. IEEE Trans. Comput. C 29(10):905–919, October
Cook, R.D. (1981) Concepts and Applications of Finite Element Analysis, 2nd ed. New York:Wiley
Hughes, T. J. (1987) The Finite Element Method: Linear Static and Dynamic Finite Element Analysis. Englewood Cliffs, NY: Prentice-Hall
Zienkiewicz, O.C.; Taylor, R.L. (1989) The Finite Element Method, vol. 1, Basic Formulations and Linear Problems, 4th ed. New York: McGraw-Hill
Baugh, J.W. Jr.; Rehak, D.R. (1989) Computational abstractions for finite element programming. Technical Report R-89-182. Department of Civil Engineering, Carnegie Mellon University, Pittsburgh, PA, September
Baugh, J.W. Jr; Rehak, D.R. (1989) Object-oriented design of finite element programs. In: Computer Utilization in Structural Engineering, (Ed. J.K. Nelson, Jr.) pp. 91–100. American Society of Civil Engineers (ASCE), May
Liskov, B.; Guttag, J.V. (1986) Abstraction and Specification in Program Development. Cambridge, MA: MIT Press
Rehak, D.R.; Keirouz, W.T.; Cendes, Z.J.; Hendrickson, C.T. (1985) Evaluation of alternative finite element system architectures. Comput. Struct. 20(1-3):17–30
Irons, B.; Ahmad, S. (1980) Techniques of Finite Elements. New York: Ellis Horwood Limited
Nikhil, R.S. (1988) Id reference manual. Computation structures group memo 284, MIT Laboratory for Computer Science, March
Burton, F.W. (1984) Annotations to control parallelism and reduction order in the distributed evaluation of functional programs. ACM Trans. Prog. Lang. Syst. 6(2):159–174, April
Hudak, P. (1986) Arrays, non-determinism, side-effects, and parallelism: A functional approach. In: Proceedings of the Workshop on Graph Reduction, pp 312–317. Lecture Notes in Computer Science, Springer-Verlag, October
Wadler, P. (1986) A new array operation. In: Proceedings of the Workshop on Graph Reduction, pp 328–335. Lecture Notes in Computer Science, Springer-Verlag, October
Nikhil, R.S. Personal communication, August, 1988
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Baugh, J.W., Rehak, D.R. Applications of coarse-grained dataflow in computational mechanics. Engineering with Computers 8, 13–30 (1992). https://doi.org/10.1007/BF01206334
Issue Date:
DOI: https://doi.org/10.1007/BF01206334