Skip to content Skip to navigation

A Fast Causal Profiler for Task Parallel Programs

A Fast Causal Profiler for Task Parallel Programs

Author Name: 

Adarsh Yoga and Santosh Nagarakatte

11th Joint Meeting of the European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE 2017)
Publication Date: 
September, 2017

This paper proposes TASKPROF, a profiler that identifies parallelism bottlenecks in task parallel programs that manifest when the program is executed on a large number of processors. TASKPROF computes this profile by fine-grained attribution of work to parts of the program and by leveraging the structure of a task parallel execution. TASKPROF’s profile execution runs in parallel using multi-cores. TASKPROF’s use of hardware performance counters to perform finegrained measurements minimizes perturbation. TASKPROF’s causal profile enables users to estimate improvements in parallelism by optimizing a region of the program even when concrete optimizations are not known. We have used TASKPROF to isolate parallelism bottlenecks in twenty three applications that use the Intel Threading Building Blocks library. We have designed parallelization techniques in five applications to increase parallelism by an order of magnitude using TASKPROF. Our user study indicates that developers are able to isolate performance bottlenecks with ease using TASKPROF.