The author introduces the main ideas of a system compiler for affine dependence algorithm. The first idea is a streaming architecture, which is a machine model for the compiler that reduces control overhead in comparison with an ensemble of von Neumann architectures. Such a streaming architecture is a dedicated architecture programmed with an incremental array instruction to be able to run any instance of the problem. The second idea is the domain flow model, which is a program representation that captures the communication of the algorithm. The structure of the compiler reflects the division between synthesis and code generation. A general front-end generates a domain flow graph. Both synthesis and code generation phases work off this data structure. However, each phase has its own back-end. For the synthesis phase the back-end is a design critic combined with an expert system which makes decision about what to do next to satisfy the design goals. For the code generation phase the back-end iterates through different partitioning and code generation strategies.<<ETX>>
[1]
Yiwan Wong.
Algorithms for systolic array synthesis
,
1989
.
[2]
Richard M. Karp,et al.
The Organization of Computations for Uniform Recurrence Equations
,
1967,
JACM.
[3]
Marina C. Chen.
A parallel language and its compilation to multiprocessor machines or VLSI
,
1986,
POPL '86.
[4]
Jingke Li,et al.
Index domain alignment: minimizing cost of cross-referencing between distributed arrays
,
1990,
[1990 Proceedings] The Third Symposium on the Frontiers of Massively Parallel Computation.
[5]
Thomas Kailath,et al.
Regular iterative algorithms and their implementation on processor arrays
,
1988,
Proc. IEEE.
[6]
Y. Wong,et al.
Broadcast removal in systolic algorithms
,
1988,
[1988] Proceedings. International Conference on Systolic Arrays.
[7]
Patrice Quinton,et al.
Alpha du centaur: a prototype environment for the design of parallel regular alorithms
,
1989,
ICS '89.
[8]
Patrice Quinton,et al.
The systematic design of systolic arrays
,
1987
.