2015 International Conference on Parallel Architecture and Compilation (PACT) (2015)
San Francisco, CA, USA
Oct. 18, 2015 to Oct. 21, 2015
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/PACT.2015.44
The polyhedral model is a powerful algebraic framework that hasenabled significant advances to analysis and transformation ofsequential affine (sub)programs, relative to traditional AST-basedapproaches. However, given the rapid growth of parallel software, there is a need for increased attention to using polyhedral frameworksto optimize explicitly parallel programs. An interesting side effectof supporting explicitly parallel programs is that doing so can alsoenable optimization of programs with unanalyzable data accesses withina polyhedral framework. In this paper, we address the problem ofextending polyhedral frameworks to enable analysis and transformationof programs that contain both explicit parallelism and unanalyzabledata accesses. As a first step, we focus on OpenMP loop parallelismand task parallelism, including task dependences from OpenMP 4.0. Our approach first enables conservative dependence analysis of a givenregion of code. Next, we identify happens-before relations from theexplicitly parallel constructs, such as tasks and parallel loops, andintersect them with the conservative dependences. Finally, theresulting set of dependences is passed on to a polyhedral optimizer, such as PLuTo and PolyAST, to enable transformation of explicitly parallelprograms with unanalyzable data accesses. We evaluate our approach using elven OpenMP benchmark programs fromthe KASTORS and Rodinia benchmark suites. We show that 1) thesebenchmarks contain unanalyzable data accesses that prevent polyhedralframeworks from performing exact dependence analysis, 2) explicitparallelism can help mitigate the imprecision, and 3) polyhedraltransformations with the resulting dependences can further improve theperformance of the manually-parallelized OpenMP benchmarks. Ourexperimental results show geometric mean performance improvements of1.62x and 2.75x on the Intel Westmere and IBM Power8 platformsrespectively (relative to the original OpenMP versions).
Parallel processing, Benchmark testing, Arrays, Schedules, Kernel, Jacobian matrices, Pluto,Happens-before relations, Explicit parallelism, Polyhedral transformations, Task parallelism, OpenMP
Prasanth Chatarasi, Jun Shirako, Vivek Sarkar, "Polyhedral Optimizations of Explicitly Parallel Programs", 2015 International Conference on Parallel Architecture and Compilation (PACT), vol. 00, no. , pp. 213-226, 2015, doi:10.1109/PACT.2015.44