Understanding Task Granularity on the JVM: Profiling, Analysis, and Optimization
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, resulting in missed parallelization opportunities. We focus on task-parallel applications running in a single Java Virtual Machine on a shared-memory multicore. Despite their performance may considerably depend on the granularity of their tasks, related analyses and optimizations have received little attention in the literature. In this paper, we advocate the need for providing a better understanding of task granularity for such applications. We discuss the importance of improving our knowledge on this topic, and highlight the related challenges. We present new approaches to profile, analyze and optimize task granularity, and discuss the results obtained so far.
Mon 9 Apr
|11:00 - 11:30|
|11:30 - 12:00|
Alireza S. Abyaneh, Simon Bauer, Christoph Kirsch, Philipp Mayer, Christian Mösl, Clément Poncelet, Sara Seidl, Ana Sokolova, Manuel WidmoserFile Attached
|12:00 - 12:30|
|Pre-print File Attached|