Skip to main content
QUICK REVIEW

[论文解读] Compiler Enhanced Scheduling for OpenMP for Heterogeneous Multiprocessors

Jyothi Krishna V. S, Shankar Balachandran|arXiv (Cornell University)|Aug 18, 2018
Parallel Computing and Optimization Techniques参考文献 15被引用 3
一句话总结

本文提出了一种面向 big.LITTLE 异构多处理器上 OpenMP 的硬件感知编译器增强调度(CES)框架,通过编译器转换和调度指令,基于工作负载特性优化线程放置。该方法在 NPB 和 FSU 基准测试中平均将运行时间减少 18%,能耗降低 14%,优于仅依赖运行时调度的方案,其优势源于静态分析与工作窃取启发式方法的结合。

ABSTRACT

Scheduling in Asymmetric Multicore Processors (AMP), a special case of Heterogeneous Multiprocessors, is a widely studied topic. The scheduling techniques which are mostly runtime do not usually consider parallel programming pattern used in parallel programming frameworks like OpenMP. On the other hand, current compilers for these parallel programming platforms are hardware oblivious which prevent any compile-time optimization for platforms like big.LITTLE and has to completely rely on runtime optimization. In this paper, we propose a hardware-aware Compiler Enhanced Scheduling (CES) where the common compiler transformations are coupled with compiler added scheduling commands to take advantage of the hardware asymmetry and improve the runtime efficiency. We implement a compiler for OpenMP and demonstrate its efficiency in Samsung Exynos with big.LITTLE architecture. On an average, we see 18% reduction in runtime and 14% reduction in energy consumption in standard NPB and FSU benchmarks with CES across multiple frequencies and core configurations in big.LITTLE.

研究动机与目标

  • 解决硬件无关编译器在异构多处理器(如 big.LITTLE)上调度多线程 OpenMP 程序时的低效问题。
  • 通过在编译时集成静态程序分析与硬件感知调度决策,提升运行时间和能耗效率。
  • 通过基于工作负载模式和核心特性的编译器引导线程放置,减少对动态运行时调度的依赖。
  • 在真实 big.LITTLE 硬件上,评估编译器指导调度在不同核心数量、频率和线程工作负载下的有效性。

提出的方法

  • 编译器执行静态分析,根据计算和内存访问模式对 OpenMP 工作共享构造(如 parallel for、sections)进行分类。
  • 应用程序转换,例如通过工作窃取实现动态负载均衡,以处理不规则或负载不均的循环。
  • 插入调度指令,指导运行时调度器根据预测的性能和能耗影响,将特定线程分配给 big 或 LITTLE 核心。
  • 支持多种调度策略:静态、动态和引导式,针对每种策略进行定制化转换,以最小化开销并提升负载均衡。
  • 通过在编译时重新优化线程放置,使框架能够适应不同的硬件配置(如 2+2、4+2、4+4 核心)和频率(1.3GHz、1.9GHz)。
  • 在三星 Exynos 的 big.LITTLE 架构上实现了原型编译器,并使用 NPB 和 FSU-OpenMP 基准测试进行了评估。

实验结果

研究问题

  • RQ1与纯运行时调度相比,编译器感知的调度框架是否能在 big.LITTLE 架构上提升运行时间和能耗效率?
  • RQ2静态分析 OpenMP 构造在多大程度上能优于仅依赖动态启发式方法,实现更优的线程放置决策?
  • RQ3在转换后的循环中引入工作窃取,在不同核心配置下对性能和可扩展性提升有多大影响?
  • RQ4核心频率和比例的变化在多大程度上影响编译器增强调度带来的性能和能耗收益?

主要发现

  • 在多个 NPB 和 FSU 基准测试中,CES 框架在 big.LITTLE 系统上平均实现运行时间减少 18%、能耗降低 14%。
  • 对于具有工作窃取机制的 EP 基准测试,框架实现运行时间提升 20%、能耗效率提升 8%,表明其在工作负载规模增大时具备良好的可扩展性。
  • 在较低 LITTLE 核心频率(1GHz)下,IS 基准测试的能耗节省尤为显著(达 28%),表明在不对称频率缩放下实现了更优的负载均衡。
  • 在不同核心比例(2+2、4+2、4+4)下,框架均保持一致的性能提升,显示出对硬件配置变化的强适应能力。
  • 在强制执行部分亲和性时,多任务基准测试表现出显著的能耗优势(最高达 28%),减少了调度波动性并提升了可预测性。
  • 该方法通过静态分析与针对性编译器转换,降低了运行时间波动性并提升了能耗效率,优于 HMP 调度。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。