Compiler-assisted dynamic scheduling for effective parallelization of loop nests on multicore processors

  • Authors:
  • Muthu Manikandan Baskaran;Nagavijayalakshmi Vydyanathan;Uday Kumar Reddy Bondhugula;J. Ramanujam;Atanas Rountev;P. Sadayappan

  • Affiliations:
  • The Ohio state University, Columbus, OH, USA;The Ohio state University, Columbus, OH, USA;The Ohio state University, Columbus, OH, USA;Louisiana State University, Baton Rouge, LA, USA;The Ohio state University, Columbus, OH, USA;The Ohio state University, Columbus, OH, USA

  • Venue:
  • Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programming
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

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.