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.