Improving Cache Utilization of Nested Parallel Programs by Almost Deterministic Work Stealing
Improving Cache Utilization of Nested Parallel Programs by Almost Deterministic Work Stealing
复制标题
DOI:
10.1109/tpds.2022.3196192
复制
发表时间:
2022-12
影响因子:
5.3
通讯作者:
Shumpei Shiina;K. Taura
中科院分区:
文献类型:
--
作者:
Shumpei Shiina;K. Taura
Nested (fork-join) parallelism eases parallel programming by enabling high-level expression of parallelism and leaving the mapping between parallel tasks and hardware to the runtime scheduler. A challenge in dynamic scheduling of nested parallelism is how to exploit data locality, which has become more demanding in the deep cache hierarchies of modern processors with a large number of cores. This paper introduces almost deterministic work stealing (ADWS), which efficiently exploits data locality by deterministically planning a cache-hierarchy-aware schedule, while allowing a little scheduling variety to facilitate dynamic load balancing. Furthermore, we propose an extension of our prior work on ADWS to achieve better shared cache utilization. The improved version of the scheduler is called multi-level ADWS. The idea is that only part of a computation whose working set size is small enough to fit into a shared cache is scheduled by ADWS within the cache recursively, thus avoiding excessive capacity misses. Our evaluation on a benchmark of parallel decision tree construction demonstrated that multi-level ADWS outperformed the conventional random work stealing of Cilk Plus by 61% and it showed a 40% performance improvement over the previous ADWS design.