Compiler-assisted dynamic scheduling for effective parallelization of loop nests on multicore processors
Compiler-assisted dynamic scheduling for effective parallelization of loop nests on multicore processors
复制标题
用于多核处理器上循环嵌套有效并行化的编译器辅助动态调度
DOI:
--
复制
发表时间:
2009
期刊:
影响因子:
--
通讯作者:
P. Sadayappan
中科院分区:
文献类型:
--
作者:
M. Baskaran;N. Vydyanathan;Uday Bondhugula;R. Ramanujam;A. Rountev;P. Sadayappan
Recent advances in polyhedral compilation technology have made it feasible to automatically transform affine sequential loop nests for tiled parallel execution on multi-core processors. However, for multi-statement input programs with statements of different dimensionalities, such as Cholesky or LU decomposition, the parallel tiled code generated by existing automatic parallelization approaches may suffer from significant load imbalance, resulting in poor scalability on multi-core systems. In this paper, we develop a completely automatic parallelization approach for transforming input affine sequential codes into efficient parallel codes that can be executed on a multi-core system in a load-balanced manner. In our approach, we employ a compile-time technique that enables dynamic extraction of inter-tile dependences at run-time, and dynamic scheduling of the parallel tiles on the processor cores for improved scalable execution. Our approach obviates the need for programmer intervention and re-writing of existing algorithms for efficient parallel execution on multi-cores. We demonstrate the usefulness of our approach through comparisons using linear algebra computations: LU and Cholesky decomposition.