【笔记】《高性能计算:现代系统与应用实践》Chapter 04 Benchmarking

摘要

该章节介绍了评估HPC计算机的一些常用Benchmark。首先是标准HPC社区Benchmark,包括最重要的HPL,将HPL作为测试套件之一的HPC Challenge,对HPC Challenge进行补充的HPCG,源于书面算法规范的NPB,通过图算法评估的Graph500。最后介绍了这些标准Benchmark以外的社区常用方法-使用小型应用程序评估。本篇笔记只包含各个Benchmark的理论和概念介绍部分,动手操作部分及书后题将在后续实践后记录。

笔记与摘录

4.1 引言

  • 历史
名称时间简介
Whetstone1972首发,1980更新串行基准测试程序 并非为超算设计,用于评估某些超算中的微处理器性能
Dhrystone1984衡量整数性能的行业标准 后被SPECint取代
Linpack1979由Dongarra等引入基于Linpack线性代数包,浮点计算性能估计,求解密集线性方程组的负载
  • HPC社区常用benchmark
    在这里插入图片描述

4.2 “好的”Benchmark

  • 三个关键属性

    • 与目标应用领域相关且对其有意义
    • 适用于多种硬件架构
    • 被用户和供应商采用,能进行横向比较
  • 其他实践属性

    • 程序简短
    • HPC 基准测试程序通常制定了该程序如何运行和优化的准则
    • 评价结果能够存档和共享,用以公开进行对比
    • 通常使用标准并行编程API
    • 工作负载应代表真实超算应用程序中工作负载的某些集合

4.4 HPL(High-Performance Linpack)

  • 求解密集线性方程组,适于浮点密集型计算
  • C语言编写,针对分布式内存计算机
  • 关键工作负载是下/上(LU)因子分解
  • 给定n, O ( n 3 ) O(n^3) O(n3)浮点运算, O ( n 2 ) O(n^2) O(n2)存储器访问。不受内存带宽的影响。
  • 扩展资料:Dongara讲座

4.5 HPC Challenge Benchmark

七种评价套件

  • HPL 求解浮点数线性方程组
  • DGEMM 双精度实数矩阵乘法
  • STREAM 通过合成工作负载,评价持续内存带宽
  • PTRANS(parallel matrix transpose) 处理器同时成对进行通信,测试架构中网络的通信能力
  • RandomAccess 测试内存中整数随机更新率,以千兆更新数/秒(GUPS)为单位
  • FFT 双精度复数一维离散傅里叶变换
  • B_eff(effecitive bandwidth benchmark) 进行一组不同模式的同步通信测试,测试通信的延迟和带宽

4.6 HPCG(High Performance Conjugate Gradients)

  • HPCG旨在对HPL进行补充,对应用程序工作负载中的内存和数据访问模式进行模拟
  • 关键工作负载是稀疏线性方程组的求解,该方程由三维离散拉普拉斯偏微分方程与27点模板计算引出。
  • HPCG中的求解方法由Krylov子空间迭代法(称为Krylov共轭梯度)得出
  • 稀疏矩阵,故每行非零元素存储在连续的内存位置中
  • 给定n, O ( n ) O(n) O(n)浮点运算, O ( n ) O(n) O(n)存储器访问
  • 五个主要内核:
    • 稀疏矩阵向量乘法:第i个结果 x i = Σ j = 0 n i A i j b j x_i = \Sigma_{j=0}^{n_i}{A_{ij}b_j} xi=Σj=0niAijbj,在分布式内存中求解该式子时需要在存储器间交换 b j b_j bj的值,即光环交换(Halo Exchange)
    • 对称高斯-赛德尔平滑:线性方程组迭代求解方法,HPCG中使用递归执行,与稀疏矩阵向量乘法具有相似的存储器访问特性。
    • 全局点积:最重要的集合通讯(在多个节点间进行通讯)类操作之一,需要计算出一个所有处理器单元均能访问的一个标量结果,这种操作在绝大多数用户应用中都很常见。使用MPI通讯时,会提供MPI全归约操作时间的最小、最大和平均值。
    • 向量更新:测试处理器数据流的带宽。
    • 多重网格法预处理:采用四种不同大小的网格,相邻两个大小之间为8倍关系,所以最大的网格尺寸约为最小的网格尺寸的4000倍。
  • 五个主要内核的代码可以由用户进行修改或替换。

4.7 NPB(NAS Parallel Benchmarks)

一系列能够体现大型流体力学计算性能特征的小程序。包含八个基本问题:
在这里插入图片描述

  • IS-大整数排序,测试整数计算速度和网络性能
  • EP-易并行随机数生成,用于评价积分计算
  • CG-共轭梯度近似计算稀疏对称矩阵的最小特征值
  • MG-计算三维势场
  • FT-用傅里叶变换计算三维偏导方程的时间积分
  • BT-解block tridiagonal系统的方程,block大小为5×5
  • SP-解Scalar Pentadiagnal系统的方程
  • LU-对耦合抛物线型/椭圆形偏导方程进行LU分解

4.8 Graph500

  • 用于数据密集型工作负载,针对三个问题:并发搜索、单元最短路径、最大独立集合。Graph500 benchmark 1是指Graph500 search benchmark,用于评价并发搜索性能的基准测试程序。
  • Graph500搜索基准测试程序在一张巨大的图上进行广度优先搜索,输出的性能指标时每秒遍历的边数(traversed edges per second, TEPS),搜索结果会被验证以保证准确性,图构造和图搜索的时间都会被记录。
  • Graph500不使用flops作为评价指标,导致该基准与HPL和HPCG的比较变得困难。
  • 该指标具有两个显著的重要趋势,一是Graph500的指标随时间持平,而HPL的性能则继续成指数级增长;二是对于分布式架构的有效GTEPS/core(giga-traversed edges per second per core)数值要低于共享内存架构的。
    在这里插入图片描述

在这里插入图片描述

4.9 小型应用

  • 实际应用程序的较小版本,源于各种科学学科中的计算问题,通常比其他HPC程序更长。
  • 小型应用通常不输出标准化度量指标,但是能够提供问题求解时间,以及超算扩展性的强弱信息。
  • 为了补充HPC Benchmark的工作并更好地捕获实际应用程序的行为,HPC社区中许多人开始转向使用小型应用程序。
  • 小型应用程序可以完成标准HPC Benchmark难以胜任的几项任务:测试内存、网络、加速器、处理器单元的参数以及这些部分交互的性能,尤其适用于当前硬件和编程模型不断涌现的情况。
  • 例:Mantevo
  • 15
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值