Algorithmic Aspects of Balancing Techniques for Pipelined Data Flow Code Generation

Abstract This paper outlines the algorithmic aspects of balancing techniques for data flow code produced by a pipelined program transformation scheme for static data flow computers. The goal of optimal balancing is to introduce a minimum amount of buffering into data flow graphs such that their execution can be fully pipelined. The balancing procedure is based on the global structure of the code and the configurations of pipelined data flow. Based on a graph-theoretic formulation of the balancing procedures, a critical review of previous related work is given. Our discussions are primarily centered on the pipelining of acyclic connected data flow graphs generated from a data flow language. We show that the optimal balancing for such data flow graphs can be formulated into certain linear programming problems which have efficient algorithmic solutions.

[1]  Guang R. Gao,et al.  Modeling the Weather with a Data Flow Supercomputer , 1984, IEEE Transactions on Computers.

[2]  Maurice Snowdon,et al.  Network Flow Programming , 1980 .

[3]  Guang R. Gao,et al.  A stability classification method and its application to pipelined solution of linear recurrences , 1987, Parallel Comput..

[4]  William B. Ackerman Efficient implementation of applicative languages , 1984 .

[5]  G. Guang-Rong AN IMPLEMENTATION SCHEME FOR ARRAY OPERATIONS IN STATIC DATA FLOW COMPUTERS , 1982 .

[6]  Guang R. Gao,et al.  Maximum Pipelining of Array Operations on Static Data Flow Machine , 1983, ICPP.

[7]  David J. Kuck,et al.  A Survey of Parallel Machine Organization and Programming , 1977, CSUR.

[8]  Wil Plouffe,et al.  An asynchronous programming language and computing machine , 1978 .

[9]  Jack B. Dennis,et al.  First version of a data flow procedure language , 1974, Symposium on Programming.

[10]  Richard M. Russell,et al.  The CRAY-1 computer system , 1978, CACM.

[11]  Jack B. Dennis,et al.  Building blocks for data flow prototypes , 1980, ISCA '80.

[12]  John W. Backus,et al.  Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs , 1978, CACM.

[13]  Jack B. Dennis,et al.  Data Flow Supercomputers , 1980, Computer.

[14]  Guang Rong Gao A pipelined code mapping scheme for static data flow computers , 1986 .

[15]  Edsger W. Dijkstra,et al.  A note on two problems in connexion with graphs , 1959, Numerische Mathematik.

[16]  L. B. Montz SAFETY AND OPTIMIZATION TRANSFORMATIONS FOR DATA FLOW PROGRAMS , 1980 .

[17]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .