powerpoint 演示文稿 - itslab.lzu.edu.cnitslab.lzu.edu.cn/download/20191031203007.pdf · 01...
TRANSCRIPT
Benchmark基准测试
2o19
00 前言
基准测试程序(Benchmark)用来测量机器的硬件最高实际运行性能,以及
软件优化的性能提升,可分为微基准测试程序(Microbenchmark)和宏基准测
试程序(Macrobenchmark)。
◆微基准测试程序用来衡量一个计算机系统的某一特定方面,如CPU定点性能、
I/O速度、网络速度等;
◆宏基准测试程序用来测量一个计算机系统的总体性能或优化方法的通用性,可
以选取不同的应用,如Web服务、数据处理等。
内存性能测试Stream 通信性能测试OMB CPU Benchmark Linpack基准测试 高性能共轭梯度
01 02 03 04 05
目录Contents
01内存性能测试
Stream
01 内存性能测试
◆Stream是目前最流行的内存带宽测试工具之一
◆Stream有C、Fortran两个版本,同时还提供MPI版本,其测试结
果统一以MB/s来衡量,反应系统持续内存带宽大小
◆下载地址:http://www.cs.virginia.edu/stream/
01 内存性能测试
复制操作:从内存单元中读
取一个数,并复制到另一个
内存单元。
Copy乘法操作:从一个内存单元
中读取一个数,与常数Scale
相乘,得到的结果写入另一
个内存单元。
Scale加法操作:从两个不同的内
存单元中分别读取两个数,
将其进行加法操作,得到的
结果写入另一个内存单元中。
Add前面三个操作的结合:从内
存单元中读取一个数与Scale
相乘,然后从另一内存单元
中读取一个数与之相加,得
到的结果再写入内存中。
Triad
01 内存性能测试
测试数据集大小,应不小于
L3 cache大小的4倍。
注意:当此参数设置大于1G
时,需要加参数 –
mcmodel=medium
STREAM_ARRAY_SIZE
Kernel执行的次数,程序将
输出除第一次外最好的结果,
所以NTIME必须大于1,缺
省值为10,通常不需要更改。
NTIME数组的偏移量,修改此值可
改变数组的对齐,从而在一
定程度上改变性能结果,通
常将其修改为2^n 。
OFFSET测试数据集的数据类型,默
认为double(8b),通常不
需要修改。
STREAM_TYPE
gcc -O -DSTREAM_ARRAY_SIZE=600000000 -mcmodel=medium stream.c -o stream_1
01 内存性能测试
单线程运行结果:
Copy带宽为10.62G/s
Scale带宽为10.3G/s
Add带宽为10.72G/s
Triad带宽为10.01G/s
01 内存性能测试
多线程(56)运行结果:
Copy带宽为50.01G/s
Scale带宽为40.63G/s
Add带宽为45.64G/s
Triad带宽为45.99G/s
01 内存性能测试
带宽=内存核心频率×内存总
线位数×倍增系数。简化公
式为:标称频率*位数。
01.内存带宽理论值
DDR4 2666MHz 64bit :
2666*64/8=21328M/s=20.8G/s
02.本机内存带宽理论值
02通信性能测试
OMB
02 通信性能测试
OMB当前支持MPI、UPC和OpenSHMEM三种通信模型,同时最新版本还提供了对CUDA和OpenACC的支持。
下载地址:http://mvapich.cse.ohio-state.edu/benchmarks
OMB提供包括点对点通信、集合通信和单边通信在内的丰富测试,并且每个通信类型又提供延迟、带宽、多线程延迟、多线程带宽等多个输出。测试者可以对通信数据大小进行设计(如延迟测试使用1B、4B、16B、64B、256B等不同消息大小,带宽测试使用4KB、64KB、256KB、1MB、4MB等不同消息大小)。
02 通信性能测试
延迟测试,为0 B到
1024 B的消息大小提
供完整的通信延迟输出,
每个节点有一个MPI进
程
双节点单向带宽,为每
个节点的一个MPI进程
提供从0 B到4 MB的消
息大小的完整通信带宽
输出
双节点双向带宽,为每
个节点的一个MPI进程
提供从0 B到4 MB的消
息大小的完整通信带宽
输出
MPI allgather延迟测
试,在系统中的所有节
点上提供完整输出,每
个核心使用所有核心执
行一个MPI任务。
MPI barrier 延迟测试,
在系统中的所有节点上
提供完整输出,每个核
心有一个MPI任务
点对点测试
osu_latency osu_bw osu_bibw osu_allgather osu_barrier
02 通信性能测试
测试结果:
最大MPI通信带宽为233M/s左右(千兆网)
03CPU Benchmark
Nbench
03 CPU Benchmark
◆nbench是一个简单的用于测试处理器,存储器性能的基准测试程
序。nbench在系统中运行并将结果和一台运行Linux的AMD K6-
233电脑比较,得到的比值作为性能指数。由于是完全开源的,爱
好者可以在各种平台和操作系统上运行nbench,并进行优化和测
试,是一个简单有效的性能测试工具
◆下载地址:http://www.math.utah.edu/~mayer/linux/nbench-
byte-2.2.3.tar.gz
对长整数数组进行排序 对任意长度的字符串数
组进行排序
执行各种位操作函数 一个小型软件浮点包 一种数值分析程序,用
于计算波形的级数近似
值
Numeric sort(数值排序)
String sort (字符串排序)
Bitfield(位字段)
Emulated floating-point(模拟浮点)
Fourier coefficients(傅里叶系数)
一种著名的任务分配算
法
一个著名的文本和图形
压缩算法
一种相对较新的分组密
码算法
一个小型但功能强大的
反向传播网络模拟器
一种求解线性方程组的
鲁棒算法
Assignment algorithm(任务分配算法)
Huffman compression(哈夫曼压缩)
IDEA encryption(idea加密)
Neural Net(神经网络)
LU Decomposition(lu分解)
03 CPU Benchmark
结果:
Int型数据处理是Pentium的152倍
双精度浮点型处理是Pentium的89倍
04Linpack基准测试
HPL
04 Linpack基准测试
◆HPL是当前最广为人知的高性能计算机性能基准测试软件
◆HPL是通过求解一个稠密线性方程组Ax=b 所花费的时间来评价计算机的浮点计算性能。为了保证测评结果的公平性,HPL不允许修改基本算法(采用LU分解的高斯消去法),即必须保证总浮点计算次数不变。
◆HPL允许用户选择任意N规模,并在不改变总浮点计算次数和计算精度的前提下对算法或程序进行修改。
◆安装intel_parallel_studio_xe 会自带hpl
自己安装Intel/compilers_and_libraries_2017.5.239/linux/mkl/benchmarks/mp_linpack目录下
◆自己安装(先安装GotoBLAS2,然后安装intel)安装过程跟VASP一样,需要修改Makefile文件
下载地址:http://www.netlib.org/benchmark/hpl
HPL安装:
04 Linpack基准测试
hpl运行时的配置文件
HPL.dat
Hpl测试程序
xhpl
04 Linpack基准测试
问题规模大小N值,要考虑内存容量的制约关系,有一个达到最佳性能的上限值。我们可以用物理内存的容量(单位:byte)乘以80%~85%来进行HPL运 算,剩余内存用户保证系统中的其他程序正常运行。由于一个双精度数占8个字 节,所以在除以8,将得到
的结果开平方,得到的值比较接近最佳N值。根据文献,似乎为384倍数更加。
测试的精度。这个值就是在做完线性方程组的求解以后,检测求解结果是否正确。若误差在这个值以内就是正确,否则错误。一般而言,若是求解错误,其误差非常大;若正确,则很小。所以没有必要修改此值
指明L分解的方式。在消元过程中,zHPL采用每次完成NB列的消元,然后更新后面的矩阵。这NB的消元就是L的分解。每次L的分解只在一列处理器中完成。对每一个小矩阵作消元时,都有3种算法:L、R、C,分别代表Left、Right和Crout。在LU分解中,具体的算法很多,测试经验,NDIVs选择2比较理想,NBMINs 4或8都不错。而对于RFACTs和PFACTs,对性能的影响不大
确定程序参数N:集群服务器配置2颗14核超线程Intel Xeon Gold CPU 5120 2.2Ghz,内存128G,根据给定公式: =231680
计算集群理论峰值:CPU核数*CPU主频*每周期执行浮点运算次数=28*5*2.2*16=4928Gflops。
80%*8
集群内存容量
04 Linpack基准测试
测试结果:132.02Gflops
运行测试:mpirun -genv I_MPI_DEBUG 3 -genv I_MPI_DEVICE sock -machinefile ./machinefile -np 192 -ppn 28 ./xhpl
05高性能共轭梯度
HPCG
05 高性能共轭梯度
HPCC
HPGC 高度共轭梯度基准测
试, 是现在主要测试超算性能
测试程序之一, 也是TOP500
的一项重要指标.一般来讲
HPCG的测试结果会比HPL
低很多,常常只有百分几。
HPCG是有HPL的作者之一Jack Dongarra等提出的一个期望弥补HPL不足的新测试程序。它采用共轭梯度法求解大型稀疏矩阵方程组Ax=b。
TOP500排名基于HPL(High
Performance Linpack )的基
准测试程序,已经被大家所
熟知。相比于HPL,HPCG
能从计算、节约能源等性能
上说明超算的性能,能更好
的评估超算。
05 高性能共轭梯度
测试结果:18.6332Gflops
运行测试:mpirun -genv I_MPI_DEBUG 3 -genv I_MPI_DEVICE sock -machinefile ./machinefile -np 192 -ppn 28 ./xhpcc
会在当前目录下生成HPCG-Benchmark-3.0_日期.yaml文件
同HPL,有intel自带版本和自己安装,自己安装同HPL安装
THANK YOU