错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Dynamic Tuning of Core Counts to Maximize Performance in Object-Based Runtime Systems

  • Kavitha Chandrasekar,
  • Laxmikant V. Kale

摘要

Relatively recent developments in supercomputer nodes, such as higher physical and virtual core counts per node, aim to speed up HPC application execution time. However, not all applications benefit from increased thread level parallelism and may exhibit performance degradation with increased concurrency. Additionally, the best performing thread count may not be known apriori as it can vary with application or with input size for a given application. This motivates the need for dynamically tuning the number of threads or cores used by an application, at run-time. However, such tuning of core counts in popular object-based or task-based runtime system is non-trivial since objects or tasks are anchored to processing elements (PEs) for locality. In this work, we identify the steps for adaptive tuning of core count to the most performant configuration, at run-time, for an object-based runtime system,  Charm++. We show performance benefit of dynamic profiling and adaptively selecting core (physical or virtual) count for a variety of applications including compute, memory and cache-intensive applications. Specifically, we show that our mechanism can improve performance by almost 40% in presence of cache and memory contention, by over 20% with SMT in Skylake nodes and by about 35% in KNL nodes. We also show energy savings, and in some cases power savings alongside performance improvement.