This tutorial will provide hands-on experience on TaskProf, a profiler that measures inherent parallelism in task parallel programs for a given input. TaskProf computes an accurate parallelism profile by performing fine-grained attribution of work to various parts of the program using the structure of a task parallel execution. We will also highlight what-if analyses in TaskProf. TaskProf’s what-if analyses allow users to estimate improvements in parallelism when regions of code are optimized, even before concrete optimizations for them are known. Finally, we will have a hands-on exercise where participants use TaskProf to identify parallelism bottlenecks, estimate the improvement from optimizing the bottlenecks, and design concrete optimizations to obtain performance improvements. The tutorial will be accessible to senior undergraduate students, graduate students, and industry researchers.