Compiler-assisted dynamic scheduling for effective parallelization of loop nests on multicore processors
- 14 February 2009
- proceedings article
- Published by Association for Computing Machinery (ACM)
- Vol. 44 (4) , 219-228
- https://doi.org/10.1145/1504176.1504209
Abstract
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.Keywords
This publication has 31 references indexed in Scilit:
- Multithreading for synchronization tolerance in matrix factorizationJournal of Physics: Conference Series, 2007
- Static scheduling algorithms for allocating directed task graphs to multiprocessorsACM Computing Surveys, 1999
- The LRPD testACM SIGPLAN Notices, 1995
- Improving the performance of runtime parallelizationACM SIGPLAN Notices, 1993
- On the granularity and clustering of directed acyclic task graphsIEEE Transactions on Parallel and Distributed Systems, 1993
- A practical algorithm for exact array dependence analysisCommunications of the ACM, 1992
- A loop transformation theory and an algorithm to maximize parallelismIEEE Transactions on Parallel and Distributed Systems, 1991
- Run-time parallelization and scheduling of loopsIEEE Transactions on Computers, 1991
- Automatic translation of FORTRAN programs to vector formACM Transactions on Programming Languages and Systems, 1987
- A comparison of list schedules for parallel processing systemsCommunications of the ACM, 1974