高性能集群性能评测课件.pptx
《高性能集群性能评测课件.pptx》由会员分享,可在线阅读,更多相关《高性能集群性能评测课件.pptx(89页珍藏版)》请在三一办公上搜索。
1、高性能集群性能评价,曙光信息产业股份有限公司解决方案中心,1高性能集群性能评价概述2集群性能评价2.1计算性能测试linpack2.2 NPB(NASA Parallel Benchmarks)测试2.3 SPEC测试套件2.64可靠性测试HPCC包3集群网络性能评价4IO性能测试5内存带宽性能测试6其它测试,1高性能集群性能评价概述,高性能计算架构变化,数据来源:2010 TOP 500 排行榜,高性能计算网络发展,数据来源:2010 TOP 500 排行榜,高性能集群操作系统份额,数据来源:2010 TOP 500 排行榜,千兆交换机,局域网,Internet,路由器,防火墙,远程控制,内
2、网,外网,以太网交换机,控制台,本地KVM,以太网,光纤网,Infiniband网,KVM管理网,登陆/管理节点,机房环境,并行存储系统,高速Inifiniband交换机,刀片集群,GPGPU节点,计算系统,存储系统,SMP胖节点,2,算例上传作业提交,10110001101010010001001001001001100011010100100010010011000110101001000100100110001101010010001001000010010011000110101000010010011000110101000010010011000110101000010010011
3、0001101010,高性能计算作业的工作流程,高性能计算机系统架构,高性能计算机中的关键技术,高性能集群三要素,无密码访问配通,统一的系统印象,统一的文件印象,对于普通用户来说,所有节点看到的某一个文件都是相同的文件。通过nfs或者并行文件系统实现。,通过NIS或同步用户信息来实现。,网络全通 rsh或ssh无密码访问配通,CAE(CFD),石油勘探,气象环境海洋,图像渲染,物质的物理化学材料属性的科研工作中,基因科学、蛋白质科学的研究以及新药的研发,地震资料处理,用于油气勘探,气象环境海洋的数值预报,动画、电影、图像的高逼真效果制作,物理化学材料,生命科学,六大应用领域,高性能计算在国内的
4、六大应用领域,计算机辅助工程,广泛应用于工业生产中,其它:卫星图像处理、金融计算等,物理化学材料: 计算物理材料:vasp,cpmd,Material Studio。 计算化学:gaussian、gamess,ADF。CAE领域: 结构计算:ansys、abaques,nastran 流体计算:fluent,CFX 电磁仿真:Fecko生命科学: 生物信息学:MPIBLAST,BWA等 分子动力学:Namd,gromacs,lammps。 药物设计:dock,autodock,DiscoveryStudio。,主流高性能应用介绍,气象海洋环境科学气象预报:WRF,MM5,Graphes海洋科学
5、:roms石油勘探Omega,cgg等动漫渲染3dmax,Maya等,主流高性能应用介绍,高性能应用典型特征,高性能应用软件的编程模型,衡量高性能系统性能的评价指标 -理论峰值(FLOPS),FLOPS(浮点运算每秒)1、如何计算理论峰值: 峰值主频(GHz)*总核心数*4 (4代表每个时钟周期做4次浮点运算) 例如:10个AMD双路12核刀片(CPU6174,主频2.2) 总核心数10212240 峰值2.224042112GFLOPS2.1TFLOPS=2.1万亿次。 GPU峰值: 每C2050卡 双精度峰值0.515TFLOPS 单精度峰值1.03TFOPS 双精度峰值0.515* GP
6、GPU卡数目(TFLOPS) 单精度峰值1.03* GPGPU卡数目(TFLOPS),衡量高性能系统性能的评价指标 -实测峰值(FLOPS),HPL(Linpach)测试 -对系统进行整体计算能力的评价Linapck测试:采用主元高斯消去法求解双精度稠密线性代数方 程组,结果按每秒浮点运算次数(flops)表示。HPL:针对大规模并行计算系统的测试,其名称为High Performance Linpack (HPL),是第一个标准的公开版本并行Linpack测试软件包。用于TOP500与国内TOP100排名依据。使用者可以改变问题规模。有相当大的优化空间。,衡量高性能系统性能的评价指标 -系统
7、效率,系统效率=实测峰值/理论峰值 如何提高效率: (1)通过优化网络 (2)通过优化测试程序的编译与设置 (3)通过优化内存的配置与容量 (4)通过优化运行参数及系统参数! 目前:一套通过Infiniband网络互连的集群,效率一般在70%以上。,加速比定律,在并行计算系统,并行算法(并行程序)的执行速度相对于串行算法(串行程序)加快的倍数,就是该并行算法(并行程序)的加速比;加速比是衡量“并行收益”的重要指标;Amdahl定律适用于固定计算规模的加速比性能描述,Gustafson定律适用于可扩展问题。,Amdahl定律,S = (WS+WP)/(WS+WP/p) = 1/(1/p+f(1-
8、1/p)显然,当p时,S=1/f,即对于固定规模的问题,并行系统所能达到的加速上限为1/f一度引发了并行界部分人士的悲观情绪,Gustafson定律,S=(WS+pwp)/(WS+WP) =p-f(p-1)=f+p(1-f)并行计算是为了解决大规模并行问题,可并行部分的比例是可扩大的加速比与处理器数成斜率为(1-f)的线性关系这样串行比例f就不再是程序扩展性的瓶颈,当然,f越低,斜率会越大,加速性能越好。,高性能集群性能评测的目的,高性能集群综合性能测评,综合性能测评指标,HPL(Linpach)测试 -对系统进行整体计算能力的评价Linapck测试:采用主元高斯消去法求解双精度稠密线性代数方
9、 程组,结果按每秒浮点运算次数(flops)表示。HPL:针对大规模并行计算系统的测试,其名称为High Performance Linpack (HPL),是第一个标准的公开版本并行Linpack测试软件包,用于TOP500与国内TOP100排名依据。使用者可以改变问题规模。有相当大的优化空间。,Linpack测试,1 依赖环境: 编译安装标准MPI程序,openmpi、intelmpi、mvapich2或mpich2均可 编译安装优化的blas库,一般建议对于Intel平台,使用MKL,对于AMD平台,使用Gotoblas。 2 下载hpl-2.0.tar.gz源码包。 3 编译linpa
10、ck程序。 a) tar -zxf hpl-2.0.tar.gz b) cd hpl-2.0c) cp setup/Make.Linux_ATHLON_FBLASMake.gcc_openmpi (gcc_openmpi只是一个名字,可以随便取),基于CPU的Linpack测试步骤,d) 编辑Make.gcc_openmpi修改第64行为ARCH = gcc_openmpi (和Make.icc_openmpi保持一致)修改第70行为TOPdir = /public/sourcecode/hpl-2.0 (此处目录为hpl-2.0所在的目录,根据具体情况修改)修改第84行为MPdir = (或
11、者注释此行)修改第85行为MPinc = (或者注释此行)修改第86行为MPlib = (或者注释此行)修改第95行为LAdir = (或者注释此行)如果blas选用MKL库,可以参考http:/,基于CPU的Linpack测试步骤,修改第97行为LAlib = -Wl,-start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a $(MKLROOT)/lib/intel64/libmkl_sequential.a $(MKLROOT)/lib/intel64/libmkl_core.a -Wl,-end-group -lpthread如果选用
12、gotoblas库修改第97行为LAlib = /public/software/mathlib/goto2/libgoto2.a修改第169行为CC = mpicc(如果选用intelmpi,此处需要更改为mpiicc),基于CPU的Linpack测试步骤,intel编译器修改第171行为CCFLAGS = -O3 -xHost -ip -funroll-loops gnu 编译器修改第171行为CCFLAGS = -pipe -O3 -fomit-frame-pointer -march=native -funroll-loops -ffast-mathpgi编译器修改第171行为CCFL
13、AGS = -Bstatic -V -fastsse -Munroll=n:4 -Mipa=fast,inline修改第174行为LINKER = mpicc,intelmpi修改为mpiicce) 载入环境变量,确认自己使用的编译器环境以及MPIsource /public/software/mpi/openmpi-1.4.3-gnu.shf) make arch=gcc_openmpig) cd bin/gcc_openmpi此目录中的xhpl为编译成功的可执行程序,HPL.dat为数据文件,基于CPU的Linpack测试步骤,修改HPL.dat,一般需要修改3处1.问题规模的组数及大小,
14、一般为1组:1 # of problems sizes (N)40000 Ns占用内存=N*N*8字节,一般占用所有测试节点物理内存总和的75%左右性能较优比如N=40000,占用物理内存=40000*40000*8 Byte=12800000000 Byte=11.92GB2.NB值,即矩阵分块大小,这个是经验值,一般设置为128、192、232 2 # of NBs 128 192 NBs这里表示运行2组,NB值分别为128和192,运行linpack,3、P和Q的设置(进程数目的设置),P和Q设置一般为1组1 # of process grids (P x Q)4 Ps4 Qs要求: P
15、Q进程数P=Q,P和Q尽量接近性能较好,如12进程,P=3/Q=4,若36进程,P=Q=6,运行linpack,HPL.dat 中其它值得修改1 # of panel fact0 1 2 PFACTs (0=left, 1=Crout, 2=Right)1 # of recursive stopping criterium4 2 8 NBMINs (= 1)1 # of panels in recursion2 NDIVs1 # of recursive panel fact.0 1 RFACTs (0=left, 1=Crout, 2=Right)这些值对最终的结果影响较小,但是也有少量的影
16、响,但是这些结果对测试的时间(数据组)有较大的影响。,运行linpack,载入环境变量,确认你要用的mpisource /public/software/mpi/openmpi1.4.3-gnu.sh考虑到可能测试时间比较长,使用nohup 到后台运行mpirun -np 16 -machinefile ma ./xhpl &out.log &ma的格式为:node1 slots=8node2 slots=8详细运行方法参见4.3,运行OpenMPI程序。测试结果在out.log 里查看,运行HPL,版本:1.4.3tar zxvf openmpi-1.4.3.tar.gz cd openmp
17、i-1.4.3/ ./configure -prefix=/public/software/mpi/openmpi1.4.3-gnu -without-psm -enable-mpirun-prefix-by-defaultmake -j 8make installmake distclean添加环境变量脚本vim /public/software/mpi/openmpi1.4.3-gnu.shMPI_HOME=/public/software/mpi/openmpi1.4.3-gnuexport PATH=$MPI_HOME/bin:$PATHexport LD_LIBRARY_PATH=$
18、MPI_HOME/lib:$LD_LIBRARY_PATHexport MANPATH=$MPI_HOME/share/man:$MANPATH,附录:如何编译openmpi,版本:1.13GotoBLAS2为优化的BLAS数学库,在版本2以后,可以将LAPACK库也集成其中,编译好的Gotoblas2包含了BLAS和LAPACK数学库,在LINPACK和常用物理化学软件中使用tar xvzf GotoBLAS2-1.13.tar.gz cp lapack-3.1.1.tgz GotoBLAS2/cd GotoBLAS2修改Makefile.rule文件:第17行, CC = gcc 20行
19、FC = ifort 27行 BINARY=64 34行 USE_THREAD = 0makemkdir -p /public/software/mathlib/goto2cp libgoto2*.a /public/software/mathlib/goto2/,附录:如何编译gotoblas库,安装基本需求:1)Nvidia CUDA环境 搭建Nvidia CUDA运行环境,需要安装以下两个包:Nvidia GPU驱动;CUDA开发工具包cudaToolkit。可通过下载安装。2)编译器 系统必须安装了支持C语言和Fortran编译器。推荐采用在Intel编译器11.0版本及以上。3)并行
20、环境 并行环境是指MPI。可采用Openmpi,Intelmpi,mvapich等,推荐使用openmpi,编译时采用intel编译器编译 。4)BLAS库 BLAS库及基本线性代数库,采用BLAS库的性能对最终测得的Linpack性能有密切的关系。目前Nvidia GPU Linpack支持Intel MKL,其中MKL可采用intel 编译器中自带的MKL。,基于GPU的Linpack测试,编译cuda HPLCUDA版本的HPL可在dawning服务器下载。相比较于CPU版本HPL,CUDA HPL主要是把HPL程序中主dgemm(double-precision generic mat
21、rix-matrix muliplication)划分为两部分,分别交给CPU、GPU协同完成,这样就可以把整个计算系统的计算能力充分利用起来。在cuda HPl编译时主要修改两个Makefile文件:修改 Make.CUDA_pinned文件修改 $hpl/src/cuda/Makefile,基于GPU的Linpack测试,在CUDA HPL文件夹中,提供了Makefile模板“Make.CUDA_pinned”,通过修改Make.CUDA_pinned文件可以指定linpack所使用编译器、库函数、编译选项等。主要修改的变量有:ARCH:必须与文件名Make.中的一致TOPDIR:当前所在
22、的路径MPdir:指明MPI所在目录MPinc: 指明MPI头文件目录MPlib:指明MPI库文件目录LAdir:BLAS库所在的目录LAinc、LAlib:BLAS库头文件、库文件CUDAinc:CUDA头文件目录CUDAlib:CUDA库文件目录CC:C语言编译器CCFLAGS:C编译选项,基于GPU的Linpack测试,2)修改 $hpl/src/cuda/Makefile此文件中主要修改MPInc 指定mpi头文件目录MPICC 指定mpicc目录如下表所示:MPInc = /public/software/ompi142-intel/includeMPICC =/public/sof
23、tware/ompi142-intel/bin/mpicc,基于GPU的Linpack测试,编译在CUDA hpl目录下执行 make arch=CUDA_pinned编译后在$cuda_hpl目录/ bin/CUDA_pinned 下生成可执行文件xhpl,编译,修改HPL.dat 与基于CPU的linpack修改方法相同,主要修改N值(问题规模)、NB值(分块大小)、P和Q的值等。,基于GPU的Linpack测试-运行,在cuda linpack程序中每个GPU device对应一个CPU进程,所以在每个节点的进程数应该与GPU device相等,为了充分利用计算节点的计算能力,可以在每个
24、CPU进程设置多个线程。在$cuda_hpl目录下修改run脚本,指定每个节点执行的进程数;在run_linpack中修改每个进程所包含的线程数。/public/software/ompi142-intel/bin/mpirun -mca btl tcp,self,sm -np 2 -machinefile ./run_linpack #进程数目,基于GPU的Linpack测试-运行,说明:基于GPU的linpack程序为一个杂化程序。整个测试过程中为了完全的利用CPU的GPU资源,降MPI程序设计,多线程程序设计、及GPU程序设计三种编程方式融合在一起。每个GPU需要一个进程进行启动,为了利
25、用CPU多核优势,一个进程起多个线程。以一台曙光W580I,使用4个GPU卡为例,系统配置2颗Intel 5650 6核处理器,共12核心。对于此系统,需要启动4个MPI进程,每个进程对应一个GPU device,由于系统共12核心,故每进程启动3个OMP线程。,基于GPU的Linpack测试-运行,修改 Run_linpack#!/bin/bashHPL_DIR=/public/dawn/hpl-2.0_FERMI_v11# Number of CPU cores ( per GPU used = per MPI processes )CPU_CORES_PER_GPU=3export HP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 性能 集群 评测 课件

链接地址:https://www.31ppt.com/p-1802079.html