paperbot · PL 论文追踪

RSS

Analysis and Optimization of Task Granularity on the Java Virtual Machine

TOPLAS 41(3)2019
Andrea Rosà, Eduardo Rosales, Walter Binder

尚未生成 AI 速览(可能缺少 API key 或等待下次运行补跑)。

原文摘要(Abstract)

Task granularity, i.e., the amount of work performed by parallel tasks, is a key performance attribute of parallel applications. On the one hand, fine-grained tasks (i.e., small tasks carrying out few computations) may introduce considerable parallelization overheads. On the other hand, coarse-grained tasks (i.e., large tasks performing substantial computations) may not fully utilize the available CPU cores, leading to missed parallelization opportunities. In this article, we provide a better understanding of task granularity for task-parallel applications running on a single Java Virtual Machine in a shared-memory multicore. We present a new methodology to accurately and efficiently collect the granularity of each executed task, implemented in a novel profiler (available open-source) that collects carefully selected metrics from the whole system stack with low overhead, and helps developers locate performance and scalability problems. We analyze task granularity in the DaCapo, ScalaBench, and Spark Perf benchmark suites, revealing inefficiencies related to fine-grained and coarse-grained tasks in several applications. We demonstrate that the collected task-granularity profiles are actionable by optimizing task granularity in several applications, achieving speedups up to a factor of 5.90×. Our results highlight the importance of analyzing and optimizing task granularity on the Java Virtual Machine.

链接与引用

DOI 原文 ·

BibTeX
@article{paperbot703,
  title = {Analysis and Optimization of Task Granularity on the Java Virtual Machine},
  author = {Andrea Rosà and Eduardo Rosales and Walter Binder},
  journal = {ACM Transactions on Programming Languages and Systems},
  volume = {41},
  number = {3},
  year = {2019},
  doi = {10.1145/3338497}
}