Distributed Computing

, Volume 5, Issue 1, pp 7–24 | Cite as

Towards systolizing compilation

  • Christian Lengauer
  • Michael Barnett
  • Duncan G. Hudson


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.

Key words

Distributed parallelism Parallelizing compiler Systolic array 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    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).Google Scholar
  2. 2.
    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–366Google Scholar
  3. 3.
    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–2028Google Scholar
  4. 4.
    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 1986Google Scholar
  5. 5.
    Chen MC, Choo Y, Li J: Compiling parallel programs by optimizing performance. J Supercomput 2:171–207 (1988)CrossRefGoogle Scholar
  6. 6.
    van Dongen V: Quasi-regular arrays: definition and design methodology. In: Proc Int Conf on Systolic Array Processors. Prentice-Hall 1989, pp 126–135Google Scholar
  7. 7.
    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–359Google Scholar
  8. 8.
    Engstrom BR, Cappello PR: The SDEF systolic programming system. In: Tewksbury SK, Dickinson BW, Schwartz SC (eds) Concurrent computations. Plenum Press, 1987, Chap 15Google Scholar
  9. 9.
    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–36Google Scholar
  10. 10.
    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–363Google Scholar
  11. 11.
    Hoare CAR: Communicating sequential processes. Series in Computer Science, Prentice-Hall 1985Google Scholar
  12. 12.
    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 1987Google Scholar
  13. 13.
    Huang C-H, Lengauer C: The derivation of systolic implementations of programs. Acta Inf 24 (6):595–632 (1987)MathSciNetGoogle Scholar
  14. 14.
    Huang C-H, Lengauer C: An incremental mechanical development of systolic solutions to the algebraic path problem. Acta Inf 27(2):97–124 (1989)Google Scholar
  15. 15.
    INMOS Ltd: occam Programming Manual. Series in Computer Science, Prentice-Hall, Englewood Cliffs, New Jersey 1984Google Scholar
  16. 16.
    INMOS Ltd: occam 2 Reference Manual. Series in Computer Science. Prentice-Hall, Englewood Cliffs, New Jersey 1988Google Scholar
  17. 17.
    INMOS Ltd: transputer Reference Manual. Prentice-Hall Englewood Cliffs, New Jersey 1988Google Scholar
  18. 18.
    Jagadish HV, Rao SK, Kailath T: Array architecture for iterative algorithms. Proc IEEE 75(9):1304–1320 (1987)Google Scholar
  19. 19.
    Prasanna Kumar VK, Tasi, Y-C: Designing linear systolic arrays. J Parallel Distrib Comput 7(3):441–463 (1989)CrossRefGoogle Scholar
  20. 20.
    Kung HT, Leiserson CE: Algorithms for VLSI processor arrays. In: Mead C, Conway L (eds), Introduction to VLSI Systems. Addison-Wesley 1980, Sect 8.3Google Scholar
  21. 21.
    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)Google Scholar
  22. 22.
    Lam M: A systolic array optimizing compiler. Tech Rep CMUCS-87-187, Department of Computer Science, Carnegie-Mellon University, May 1987Google Scholar
  23. 23.
    Lee P, Kedem Z: Synthesizing linear array algorithms from nested for loop algorithms. IEEE Trans Comput TC-37(12):1578–1598 (1988)MathSciNetGoogle Scholar
  24. 24.
    Lengauer C: A methodology for programming with concurrency: the formalism. Sci Comput Program 2(1):19–52 (1982)zbMATHGoogle Scholar
  25. 25.
    Lengauer C: Code generation for a systolic computer. Software Pract Exper 20(3):261–282 (1990)MathSciNetGoogle Scholar
  26. 26.
    Lengauer C, Sanders JW: The projection of systolic programs. Form Aspec Comput 2:273–293 (1990)Google Scholar
  27. 27.
    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–105Google Scholar
  28. 28.
    Lieu PJ: Personal communication, November 1987Google Scholar
  29. 29.
    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–334Google Scholar
  30. 30.
    McGraw JR: SISAL language reference manual, version 1.2. Manual M-146, Lawrence Livermore National Laboratory, University of California at Davis, March 1985Google Scholar
  31. 31.
    Moldovan DI, Fortes JAB: Partitioning and mapping algorithms into fixed-size systolic arrays. IEEE Trans Comput C-35(1):1–12 (1986)Google Scholar
  32. 32.
    Moldovan DI: ADVIS: a software package for the design of systolic arrays. IEEE Trans Comput-Aided Design CAD-6(1):33–40 (1987)MathSciNetGoogle Scholar
  33. 33.
    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–214Google Scholar
  34. 34.
    Quinton P, van Dongen V: The mapping of linear recurrence equations on regular arrays. J VLSI Signal Processing 1(2):95–113 (1989)Google Scholar
  35. 35.
    Rajopadhye SV: Synthesizing systolic arrays with control signals from recurrence equations. Distrib Comput 3:88–105 (1989)CrossRefGoogle Scholar
  36. 36.
    Rajopadhye SV, Fujimoto RM: Synthesizing systolic arrays from recurrence equations. Parallel Comput 14(2):163–189 (1990)CrossRefMathSciNetGoogle Scholar
  37. 37.
    Rao SK: Regular iterative algorithms and their implementations on processor arrays. Ph D Thesis, Department of Electrical Engineering, Stanford University, October 1985Google Scholar
  38. 38.
    Rao SK, Kailath T: Regular iterative algorithms and their implementations on processor arrays. Proc IEEE 76(2):259–282 (1988)CrossRefGoogle Scholar
  39. 39.
    Robert Y, Trystram D: An orthogonal systolic array for the algebraic path problem. Computing 39(3):187–199 (1987)CrossRefMathSciNetGoogle Scholar
  40. 40.
    Rote G: A systolic array algorithm for the algebraic path problem (shortest paths; matrix inversion). J Comput 34(3):191–219 (1985)zbMATHMathSciNetGoogle Scholar
  41. 41.
    Wong Y, Delosme J-M: Broadcast removal in systolic algorithms. In: Proc Int Conf on Systolic Arrays. IEEE Computer Society Press 1988, pp 403–412Google Scholar
  42. 42.
    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 1988Google Scholar
  43. 43.
    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 1990Google Scholar
  44. 44.
    Zimmermann U: Linear and combinatorial optimization in ordered algebraic structures. Annals of Discrete Mathematics 10, North-Holland, Amsterdam 1981, Chap. 8Google Scholar

Copyright information

© Springer-Verlag 1991

Authors and Affiliations

  • Christian Lengauer
    • 1
  • Michael Barnett
    • 2
  • Duncan G. Hudson
    • 2
  1. 1.Department of Computer ScienceUniversity of EdinburghEdinburghScotland
  2. 2.Department of Computer SciencesThe University of Texas at AustinAustinUSA

Personalised recommendations