A low-cap power budget is challenging for exascale computing. Dynamic Voltage and Frequency Scaling (DVFS) and Uncore Frequency Scaling (UFS) are the two widely used techniques for limiting the HPC application's energy footprint. However, existing approaches fail to provide a unified solution that can work with different types of parallel programming models and applications. This paper proposes Cuttlefish, a programming model oblivious C/C++ library for achieving energy efficiency in multicore parallel programs running over Intel processors. An online profiler periodically profiles model-specific registers to discover a running application's memory access pattern. Using a combination of DVFS and UFS, Cuttlefish then dynamically adapts the processor's core and uncore frequencies, thereby improving its energy efficiency. The evaluation on a 20-core Intel Xeon processor using a set of widely used OpenMP benchmarks, consisting of several irregular-tasking and work-sharing pragmas, achieves geometric mean energy savings of 19.4% with a 3.6% slowdown.
翻译:电压和频度缩放(DVFS)和非核心频率缩放(UFS)是限制HPC应用的能源足迹的两种广泛使用的技术。但是,现有的方法未能提供一种统一的解决办法,能够与不同类型的平行编程模式和应用发挥作用。本文提议了Cuttlefish,这是一个无视C/C+++(C++)的编程模型,用于在英特尔处理器上运行的多核心平行项目中实现能源效率。一个在线剖面仪定期描述特定模型的登记册,以发现正在运行的应用程序的内存访问模式。利用DVFS和UFS(UFS)的组合,Cuttlefish(Cuttlefish)然后动态地调整处理器的核心频率和非核心频率,从而提高其能效。用一套广泛使用的OpenMP基准对20个核心 Intel Xeon(Intel Xeon)处理器进行了评价,该模型由若干个不规则性任务和工作共享的格拉马组成,实现了19.6%的地理平均节能节减。