A Parallelism Profiler with What-If Analyses for OpenMP Programs
Nader Boushehrinejadmoradi, Adarsh Yoga, Santosh Nagarakatte · 2018
This paper proposes OMP-WhIP, a profiler that measures inherent parallelism in the program for a given input and provides what-if analyses to estimate improvements in parallelism. We propose a novel OpenMP series-parallel graph representation (OSPG) that precisely captures series-parallel relations induced by various directives between different fragments of dynamic execution. OMP-WhIP constructs the OSPG and measures the computation performed by each dynamic fragment using hardware performance counters. This series-parallel representation along with measurement of computation is a performance model of the program for a given input, which enables computation of inherent parallelism. This novel performance model also enables what-if analyses where a programmer can estimate improvements in parallelism when bottlenecks are addressed. We have used OMP-WhIP to identify parallelism bottlenecks in more than forty applications and then designed strategies to improve the speedup in seven applications.