Run-Time Parallelization Optimization Techniques
In this paper we first present several compiler techniques to reduce the overhead of run-time parallelization. We show how to use static control flow information to reduce the number of memory references that need to be traced at run-time. Then we introduce several methods designed specifically for the parallelization of sparse applications. We detail some heuristics on how to speculate on the type and data structures used by the original code and thus reduce the memory requirements for tracing the sparse access patterns without performing any additional work. Optimization techniques for the sparse reduction parallelization and speculative loop distribution conclude the paper.
KeywordsAccess Pattern Sparse Code Memory Reference Reduction Element Data Dependence Analysis
Unable to display preview. Download preview PDF.
- 1.W. Blume et.al. Advanced Program Restructuring for High-Performance Computers with Polaris. IEEE Computer, 29(12):78–82, December 1996.Google Scholar
- 2.J. Hoeflinger. Interprocedural Parallelization Using Memory Classification Analysis. PhD thesis, University of Illinois, August, 1998.Google Scholar
- 3.L. Rauchwerger. Run-time parallelization: A framework for parallel computation. TR. UIUCDCS-R-95-1926, Dept of Comp. Science, University of Illinois, Sept. 1995.Google Scholar
- 4.L. Rauchwerger and D. Padua. The LRPD Test: Speculative Run-Time Parallelization of Loops with Privatization and Reduction Parallelization. IEEE Trans. on Parallel and Distributed Systems, 10(2), 1999.Google Scholar
- 5.J. Wu, et.al. Runtime compilation methods for multicomputers. In Dr.H.D. Schwetman, editor, Proc. of the 1991 Int. Conf. on Parallel Processing, pages 26–30. CRC Press, Inc., 1991. Vol. II Software.Google Scholar