Analyzing Performance Variation of Task Schedulers with TaskInsight
- Ceballos, G. , Grass, T. , Hugo, A. , Black-Schaffer, D.
- Parallel Computing
AbstractRecent scheduling heuristics for task-based applications have managed to improve performance by taking into account memory-related properties such as data locality and cache sharing. However, there is still a general lack of tools that can provide insights into why, and where, different schedulers result in different memory behavior, and how this is related to the applications’ performance.
To address this we present TaskInsight, a technique to characterize the memory behavior of different task schedulers through the analysis of data reuse across tasks. TaskInsight provides high-level, quantitative information that can be correlated with tasks’ performance variation over time to understand data reuse through the caches due to scheduling choices. TaskInsight is useful to diagnose and identify which scheduling decisions affected performance, when were they taken, and why the performance changed, both in single and multi-threaded executions.
We demonstrate how TaskInsight can diagnose cases where poor scheduling caused over 40% difference on average (and up to 7x slowdowns) across the Montblanc benchmarks due to changes in the tasks’ data reuse through the private and shared caches. This flexible insight is key for optimization in many contexts, including data locality, throughput, memory footprint or even energy efficiency.