高性能计算中心的优化策略

能源研究科学计算中心(NERSC)是美国能源部科学办公室的主要科学计算设施,位于劳伦斯伯克利国家实验室。NERSC中心为超过6000名科学家提供服务,这些科学家在国家实验室和大学中研究燃烧、气候建模、聚变能源、材料科学、物理学、化学、计算生物学等多个领域的广泛问题。

为了实现其目标,NERSC需要在其多样化的应用程序上优化,以在英特尔® Xeon Phi™处理器上实现峰值性能。为此,它使用基于英特尔®顾问的屋顶线分析模型,这是英特尔®并行工作室软件套件中的一个工具。屋顶线模型最初由劳伦斯伯克利国家实验室计算研究部的计算机科学家Sam Williams开发。使用该模型可以将应用程序性能提高高达35%。

屋顶线分析

“优化复杂应用程序需要绝对的性能感”,NERSC的博士后研究员Tuomas Koskela博士解释说。“有许多潜在的优化方向。了解采取哪个方向,哪些因素限制了性能,以及何时停止至关重要。”

屋顶线分析有助于确定应用程序与计算平台峰值性能之间的差距。这种直观的性能模型限制了在多核、众核或加速器处理器架构上运行的各种数值方法和操作的性能。

与简单地使用峰值百分比估计不同,该模型可以通过将局部性、带宽和不同的并行化范式结合到一个性能数字中来评估性能质量。屋顶线图有助于确定实现和固有性能限制。

  • 每秒浮点运算次数(FLOP/s)
  • 从DRAM的字节数
  • 计算时间

一体化工具

英特尔顾问屋顶线实现提供了比标准屋顶线分析更多的洞察力,通过绘制更多的屋顶线:

  • 缓存屋顶线
  • 说明如果所有数据适合相应缓存,则性能如何。
  • 向量使用屋顶线
  • 显示如果有效使用向量化,则可以达到的最大性能水平。

在经典屋顶线模型中,字节是从给定内存层次结构的某个级别中测量出来的。算术强度(AI)取决于问题大小和强度。此外,内存优化将改变AI。

英特尔顾问基于缓存感知屋顶线模型,其中字节是从CPU的所有内存层次结构中测量出来的。AI与问题大小和平台无关,对于给定算法是一致的。

图2显示了在经典与缓存感知屋顶线模型中一个点如何移动。 图3显示了英特尔顾问的缓存感知屋顶线模型报告。红色循环是最耗时的,而绿色循环在计算时间方面微不足道。较大的循环如果优化将有更大的影响。最远离屋顶的循环具有最大的改进潜力。

缓存感知屋顶线模型在行动中

NERSC使用英特尔顾问的缓存感知屋顶线模型来优化其两个关键应用程序:

  • PICSAR*,一个用于许多集成核心(MIC)架构的高性能粒子在单元(PIC)库
  • XGC1*,用于模拟托卡马克(边缘)聚变等离子体中的等离子体湍流的PIC代码

PICSAR应用程序旨在与现有的PIC代码WARP*接口。它为社区提供高性能PIC例程,计划作为开源项目发布。

该应用程序用于等离子体物理学、激光-物质相互作用和传统粒子加速器的项目。其优化包括:

  • L2字段缓存阻塞,其中MPI域分解为瓦片
  • 混合并行化,OpenMP*处理瓦片(内部节点并行化)
  • 新的数据结构
  • 以实现有效的向量化(当前/电荷分布)
  • 高效的并行粒子交换算法
  • 在瓦片之间
  • 并行优化的伪谱麦克斯韦求解器
  • 粒子排序算法(内存局部性)

NERSC将屋顶线模型应用于三种配置:

  • 没有瓦片化,没有向量化
  • 瓦片化(L2缓存阻塞)和没有向量化
  • 瓦片化(L2缓存阻塞)和向量化

XGC1应用程序是一个用于模拟托卡马克(边缘)聚变等离子体中的等离子体湍流的PIC代码。其复杂的几何形状包括:

  • 2D(极向)平面中的非结构化网格
  • 非平凡的,场跟随(环形)映射
  • 在网格之间

典型的模拟有每个单元10000个粒子,每个域1000000个单元,64个环形域。SGC1中的大部分计算时间都花在电子子循环上。瓶颈包括:

  • 场插值
  • 在场收集中将粒子位置插入
  • 在推后在非结构化网格上进行元素搜索
  • 在推中计算高阶项在陀螺运动方程中的运动

通过单一的英特尔顾问调查,NERSC能够发现大部分瓶颈(图4)。

  • 通过在短行程计数循环内插入粒子块循环来启用向量化
  • 数据结构重新排序
  • 以SoA格式存储场和粒子数据,这对于使用收集指令访问多个组件最有效
  • 算法改进,包括减少对搜索例程的不必要调用次数,以及按元素索引而不是局部坐标对粒子进行排序。
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485