Skip to main content
QUICK REVIEW

[论文解读] BoxLib with Tiling: An AMR Software Framework

Weiqun Zhang, Ann Almgren|arXiv (Cornell University)|Apr 12, 2016
Advanced Data Storage Technologies参考文献 30被引用 8
一句话总结

本文提出 BoxLib with Tiling,这是一种在框架层面集成分块(tiling)技术的块结构自适应网格加密(AMR)框架,旨在提升多核、NUMA感知架构下的数据局部性和线程级并行性。通过将分块结构直接嵌入 BoxLib 的迭代器系统,应用开发者可在不修改应用代码的前提下,实现显著的性能提升——相较于单线程未分块执行,最高可获得 92 倍的加速,从而实现现代及未来高性能计算系统中的高效扩展。

ABSTRACT

In this paper we introduce a block-structured adaptive mesh refinement (AMR) software framework that incorporates tiling, a well-known loop transformation. Because the multiscale, multiphysics codes built in BoxLib are designed to solve complex systems at high resolution, performance on current and next generation architectures is essential. With the expectation of many more cores per node on next generation architectures, the ability to effectively utilize threads within a node is essential, and the current model for parallelization will not be sufficient. We describe a new version of BoxLib in which the tiling constructs are embedded so that BoxLib-based applications can easily realize expected performance gains without extra effort on the part of the application developer. We also discuss a path forward to enable future versions of BoxLib to take advantage of NUMA-aware optimizations using the TiDA portable library.

研究动机与目标

  • 解决下一代多核、NUMA 架构系统中 AMR 模拟的性能瓶颈。
  • 克服因不规则内存访问和高缓存未命中率导致的 AMR 中细粒度循环级多线程的局限性。
  • 通过在 BoxLib 框架内嵌分块转换,而非要求手动在应用层实现,降低开发人员负担。
  • 通过与 TiDA 可移植库集成,为未来支持 NUMA 感知优化铺平道路。
  • 通过提升数据局部性和线程级并行性,最大化在数百甚至数千核系统上的性能表现。

提出的方法

  • 将分块作为 BoxLib 迭代抽象中的第一类构造,取代手动的循环级多线程。
  • 应用多维分块技术对迭代空间进行划分,减少每个线程的工作集大小,从而提升缓存利用率。
  • 采用粗粒度分块级多线程而非细粒度循环级多线程,以降低线程开销并改善负载均衡。
  • 利用 TiDA 库为未来 NUMA 感知优化提供支持,实现基于区域的分块,将数据与计算映射到本地内存域。
  • 设计框架以透明地支持逻辑分块(数据分区)和区域分块(NUMA 感知内存布局)。
  • 在 Intel KNC 和 Trestles 系统上,使用 SMC 及其他基于 BoxLib 的代码,在强可扩展性工作负载下评估性能表现。

实验结果

研究问题

  • RQ1如何有效将分块集成到类似 BoxLib 的块结构 AMR 框架中,以提升多核架构下的性能?
  • RQ2在基于 BoxLib 的应用中,用粗粒度分块级多线程替代细粒度循环级多线程,能带来多大的性能提升?
  • RQ3在具有不规则内存访问模式的 AMR 模拟中,分块在多大程度上改善了数据局部性并降低了内存带宽压力?
  • RQ4基于区域的分块能否在未来的高核心数系统中缓解 NUMA 效应?其在实际应用中与逻辑分块相比表现如何?
  • RQ5TiDA 库的集成如何在不修改应用层代码的前提下,实现可移植的、NUMA 感知的分块?

主要发现

  • SMC 代码的 180 线程分块运行相比单线程未分块运行实现了 92 倍加速,证明了显著的性能提升。
  • 最佳分块运行比最佳未分块运行快 2.4 倍,证实即使线程数相同,分块也能提升性能。
  • 在 60 核的 Intel KNC 系统上,分块版本从 1 到 180 个线程实现了 86 倍加速,表现出高效的可扩展性。
  • 在 Trestles 系统上,32 个核心分布在 8 个 NUMA 域时,区域分块相比单线程实现了 32 倍加速,且随着 NUMA 域数量增加,其性能优于逻辑分块。
  • 区域分块通过将整个区域分配给特定 NUMA 节点,减少了远程内存访问延迟,提升了带宽并分摊了通信开销。
  • 原型实现表明,NUMA 感知分块可显著降低大规模、多核系统中复杂内存层次结构带来的性能惩罚。

更好的研究,从现在开始

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

无需绑定信用卡

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