|
ABSTRACT
It has been shown that control flow decisions often reduce the amount of fine-grain, or instruction-level parallelism in many computations. There exists various architectural solutions to this problem, such as branch prediction and speculative execution. Here we present an alternative solution, based on the use of partial evaluation for statically increasing the parallelism of a computation. In particular we explore the capability of a partial evaluator to remove control flow decisions.
A partial evaluator is described, which specializes data flow graphs produced by a compiler for a fine-grained processor array. The data flow graphs can be viewed as the equivalent of a machine-code program for conventional processor, and consequently some aspects of the architecture can be taken into account by the partial evaluator.
Results from the use of the partial evaluator show that it can significantly improve the performance of a computation. The performance improvement is partly due to improved parallelism, but mostly due to a reduce dynamic instruction count, i.e. a reduction in the number of operations executed.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
BW90
|
|
| |
CP90
|
|
 |
CSS+91
|
David E. Culler , Anurag Sah , Klaus E. Schauser , Thorsten von Eicken , John Wawrzynek, Fine-grain parallelism with minimal hardware support: a compiler-controlled threaded abstract machine, Proceedings of the fourth international conference on Architectural support for programming languages and operating systems, p.164-175, April 08-11, 1991, Santa Clara, California, United States
|
| |
Jon87
|
Nell D. Jones. Automatic Program Specialization: A Reexamination From Basic Principles. In A.P. Ershov D. BjOrner and N.D. Jones, editors, Partial Evaluation and Mixed Computation, pages 225-282. Elsevier Science Publishers B.V. (North-Holland), October 1987.
|
| |
Kun88
|
|
 |
Lis91
|
|
 |
LW92
|
|
 |
RP89
|
|
| |
Ses87
|
Peter Sestoft. Automatic Call Unfolding in a Partial Evaluator. In A.P. Ershov D. Bjerner and N.D. Jones, editors, Partial Evaluation and Mixed Computation, pages 485-506. Elsevier Science Publishers B.V. (North-Holland), October 1987.
|
| |
Vas92
|
Jonas Vasell. Three Specialized Computer Architectures for Functional Program Execution. PhD thesis, Dept. of Computer Engineering, Chalmers University of Technology, S-412 96 GSteborg, Sweden, September 1992.
|
| |
VV91a
|
Jonas Vasell and Jesper Vasell. A Functional Programming Technique for Programmable Wavefront Arrays. In E.F. Deprettere, editor, Algorithms and Parallel VLSI Architectures, volume B, pages 283-292. Elsevier Science Publishers B.V., Amsterdam, The Netherlands, 1991.
|
| |
VV91b
|
|
| |
VV92
|
|
 |
Wal91
|
|
| |
WCRS91
|
Daniel Weise , Roland Conybeare , Erik Ruf , Scott Seligman, Automatic online partial evaluation, Proceedings of the 5th ACM conference on Functional programming languages and computer architecture, p.165-191, June 1991, Cambridge, Massachusetts, United States
|
|