Summary
A scheme for the compilation of imperative or functional programs into systolic programs is demonstrated on matrix composition/decomposition and Gauss-Jordan elimination. Using this scheme, programs for the processor network Warp and for several transputer networks have been generated.
Similar content being viewed by others
References
Annaratone M, Arnould E, Gross T, Kung HT, Lam M, Menzilcioglu O, Webb JA: The Warp computer: Architecture, implementation, and performance. IEEE Trans Comput C-36 (12):1523–1538 (1987).
Barnett M: The formal derivation of distributed programs from systolic arrays. Proc 2nd IEEE Symp on Parallel and Distributed Processing. IEEE Computer Society Press 1990, pp 363–366
Bu J, Deprettere EF: Converting sequential interative algorithms to recurrent equations for automatic design of systolic arrays. Proc IEEE Int Conf on Acoustics, Speech and Signal Processing (ICASSP 88), vol IV: VLSI; Spectral Estimation. IEEE Press 1988, pp 2025–2028
Chen MC: Placement and interconnection of systolic processing elements: a new LU-decomposition algorithm. Res Rep YALEU/DCS/RR-498, Department of Computer Science, Yale University, October 1986
Chen MC, Choo Y, Li J: Compiling parallel programs by optimizing performance. J Supercomput 2:171–207 (1988)
van Dongen V: Quasi-regular arrays: definition and design methodology. In: Proc Int Conf on Systolic Array Processors. Prentice-Hall 1989, pp 126–135
van Dongen V, Petit M: PRESAGE: a tool for the parallelization of nested loop programs. In: Claesen LJM (ed), Formal VLSI specification and synthesis (VLSI Design Methods-I). North-Holland, Amsterdam 1990, pp 341–359
Engstrom BR, Cappello PR: The SDEF systolic programming system. In: Tewksbury SK, Dickinson BW, Schwartz SC (eds) Concurrent computations. Plenum Press, 1987, Chap 15
Gachet P, Joinnault B, Quinton P.: Synthesizing sytolic arrays using DIASTOL. In: Moore W, McCabe A, Urquart R (eds), Systolic arrays. Hilger 1987, pp 25–36
Gross T, Sussman A: Mapping a single-assignment language onto the Warp systolic array. In: Kahn G (ed), Functional Programming Languages and Computer Architecture. Lect Notes Comput Sci, vol 274. Springer Berlin Heidelberg New York 1987, pp 347–363
Hoare CAR: Communicating sequential processes. Series in Computer Science, Prentice-Hall 1985
Huang C-H: The mechanically certified derivation of concurrency and its application to systolic design. Ph D Thesis, Department of Computer Sciences, The University of Texas at Austin, August 1987
Huang C-H, Lengauer C: The derivation of systolic implementations of programs. Acta Inf 24 (6):595–632 (1987)
Huang C-H, Lengauer C: An incremental mechanical development of systolic solutions to the algebraic path problem. Acta Inf 27(2):97–124 (1989)
INMOS Ltd: occam Programming Manual. Series in Computer Science, Prentice-Hall, Englewood Cliffs, New Jersey 1984
INMOS Ltd: occam 2 Reference Manual. Series in Computer Science. Prentice-Hall, Englewood Cliffs, New Jersey 1988
INMOS Ltd: transputer Reference Manual. Prentice-Hall Englewood Cliffs, New Jersey 1988
Jagadish HV, Rao SK, Kailath T: Array architecture for iterative algorithms. Proc IEEE 75(9):1304–1320 (1987)
Prasanna Kumar VK, Tasi, Y-C: Designing linear systolic arrays. J Parallel Distrib Comput 7(3):441–463 (1989)
Kung HT, Leiserson CE: Algorithms for VLSI processor arrays. In: Mead C, Conway L (eds), Introduction to VLSI Systems. Addison-Wesley 1980, Sect 8.3
Kung S-Y, Lo S-C, Lewis PS: Optimal systolic design for the transitive closure and shortest path problems. IEEE Trans Comput C-36(5):603–614 (1987)
Lam M: A systolic array optimizing compiler. Tech Rep CMUCS-87-187, Department of Computer Science, Carnegie-Mellon University, May 1987
Lee P, Kedem Z: Synthesizing linear array algorithms from nested for loop algorithms. IEEE Trans Comput TC-37(12):1578–1598 (1988)
Lengauer C: A methodology for programming with concurrency: the formalism. Sci Comput Program 2(1):19–52 (1982)
Lengauer C: Code generation for a systolic computer. Software Pract Exper 20(3):261–282 (1990)
Lengauer C, Sanders JW: The projection of systolic programs. Form Aspec Comput 2:273–293 (1990)
Lengauer C, Sabata B, Arman F: A mechanically derived systolic implementation of pyramid initialization. In: Brown G, Leeser M (eds), Proc Hardware Specification, Verification and Synthesis: Mathematical Aspects. Lect Notes Comput Sci, vol 408. Springer, Berlin Heidelberg New York 1990, pp 90–105
Lieu PJ: Personal communication, November 1987
Lisper B: Single-assignment semantics for imperative programs. In: Odijk E, Rem M, Syre J-C (eds), Proc Parallel Architectures and Languages Europe (PARLE '89), vol II: Parallel Languages. Lect Notes Comput Sci, vol 366. Springer, Berlin Heidelberg New York 1989, pp 321–334
McGraw JR: SISAL language reference manual, version 1.2. Manual M-146, Lawrence Livermore National Laboratory, University of California at Davis, March 1985
Moldovan DI, Fortes JAB: Partitioning and mapping algorithms into fixed-size systolic arrays. IEEE Trans Comput C-35(1):1–12 (1986)
Moldovan DI: ADVIS: a software package for the design of systolic arrays. IEEE Trans Comput-Aided Design CAD-6(1):33–40 (1987)
Quinton P: Automatic synthesis of systolic arrays from uniform recurrent equations. Proc 11th Ann Int Symp on Computer Architecture. IEEE Computer Society Press 1984, pp 208–214
Quinton P, van Dongen V: The mapping of linear recurrence equations on regular arrays. J VLSI Signal Processing 1(2):95–113 (1989)
Rajopadhye SV: Synthesizing systolic arrays with control signals from recurrence equations. Distrib Comput 3:88–105 (1989)
Rajopadhye SV, Fujimoto RM: Synthesizing systolic arrays from recurrence equations. Parallel Comput 14(2):163–189 (1990)
Rao SK: Regular iterative algorithms and their implementations on processor arrays. Ph D Thesis, Department of Electrical Engineering, Stanford University, October 1985
Rao SK, Kailath T: Regular iterative algorithms and their implementations on processor arrays. Proc IEEE 76(2):259–282 (1988)
Robert Y, Trystram D: An orthogonal systolic array for the algebraic path problem. Computing 39(3):187–199 (1987)
Rote G: A systolic array algorithm for the algebraic path problem (shortest paths; matrix inversion). J Comput 34(3):191–219 (1985)
Wong Y, Delosme J-M: Broadcast removal in systolic algorithms. In: Proc Int Conf on Systolic Arrays. IEEE Computer Society Press 1988, pp 403–412
Wong Y, Delosme JM: Optimal systolic implementations of N-dimensional recurrences. Proc IEEE Int Conf on Computer Design (ICCD 85), IEEE Press 1985, pp 618–621. Also: Tech Rep 8810, Department of Computer Science, Yale University, April 1988
Xue J, Lengauer C: On one-dimensional systolic arrays. Proc Int Workshop on Formal Methods in VLSI Design, Miami, Florida, January 1991 (to appear) Full paper: Tech Rep ECS-LFCS-90-116, Department of Computer Science, University of Edinburgh, July 1990
Zimmermann U: Linear and combinatorial optimization in ordered algebraic structures. Annals of Discrete Mathematics 10, North-Holland, Amsterdam 1981, Chap. 8
Author information
Authors and Affiliations
Additional information
Christian Lengauer holds a Dipl. Math. (1976) from the Free University of Berlin, and an M.Sc (1978) and Ph.D. (1982) in Computer Science from the University of Toronto. He was an Assistant Professor of Computer Sciences at The University of Texas at Austin from 1982 to 1989 and is presently a Lecturer in Computer Science at the University of Edinburgh. His past research has been in the areas of systolic design, formal semantics and program construction, and automated theorem proving.
Michael Barnett received a B.A. in Computer Science from Brooklyn College/City University of New York in 1985, and is currently a Ph.d. candidate at the University of Texas at Austin, where he has been since 1986. From 1985 to 1986 he worked at IBM's T.J. Watson Research Center. His current research interests include formal methods, programming methodology, and functional programming.
Duncan G. Hudson III received the B.A. degree in computer sciences from The University of Texas at Austin in 1987 and the M.S.C.S. degree in computer sciences from The University of Texas at Austin in 1989. He has worked as a Graduate Research Assistant at The University of Texas at Austin in the areas of graphical parallel programming environments, parallel numerical algorithms, and objectoriented programming languages for parallel architectures and as a Software Design Engineer at Texas Instruments in the areas of objectoriented databases and parallel image understanding. He is currently a Ph.D. candidate in the Department of Computer Sciences at The University of Texas at Austin. His current research interests include parallel architectures and algorithms and parallelizing compilers.
This research was supported in part by the following funding agencies: through Carnegie-Mellon University by the Defense Advanced Research Projects Agency monitored by the Space and Naval Warfare Systems Command under Contract N00039-87-C-0251 and by the Office of Naval Research under Contracts N00014-87-K-0385 and N00014-87-K-0533; through Oxford University by the Science and Engineering Research Council under Contract GR/E 63902; through the University of Texas at Austin by the Office of Naval Research under Contract N00014-86-K-0763 and by the National Science Foundation under Contract DCR-8610427
Rights and permissions
About this article
Cite this article
Lengauer, C., Barnett, M. & Hudson, D.G. Towards systolizing compilation. Distrib Comput 5, 7–24 (1991). https://doi.org/10.1007/BF02311229
Received:
Accepted:
Issue Date:
DOI: https://doi.org/10.1007/BF02311229