高性能集群性能评价曙光信息产业股份有限公司解决方案中心目录1高性能集群性能评价概述2集群性能评价–2.1计算性能测试linpack–2.2NPB(NASAParallelBenchmarks)测试–2.3SPEC测试套件–2.64可靠性测试HPCC包3集群网络性能评价4IO性能测试5内存带宽性能测试6其它测试1高性能集群性能评价概述高性能计算架构变化高性能计算网络发展高性能集群操作系统份额千兆交换机局域网Internet路由器防火墙远程控制内网外网以太网交换机控制台本地KVM以太网光纤网Infiniband网KVM管理网登陆/管理节点机房环境并行存储系统高速Inifiniband交换机刀片集群GPGPU节点计算系统存储系统SMP胖节点算例上传作业提交本地建模本地建模101100011010100100010010010010011000110101001000100100110001101010010001001001100011010100100010010000100100110001101010000100100110001101010000100100110001101010000100100110001101010作业运行数据访问与存储系统管理与用户管理高性能计算作业的工作流程系统软件层基础设施层IT核心硬件层存储系统计算系统网络系统操作系统作业调度软件、管理系统并行环境编译器、数学库、MPI网络PC机笔记本平板电脑瘦客户端工作站应用软件层生命科学CAE仿真功能节点空调系统物理化学气象海洋配电系统防雷系统机房装修机柜及KVM石油勘探动漫渲染高性能计算机系统架构高性能计算机中的关键技术高性能集群三要素无密码访问配通统一的系统印象统一的文件印象对于普通用户来说,所有节点看到的某一个文件都是相同的文件。通过nfs或者并行文件系统实现。通过NIS或同步用户信息来实现。•网络全通•rsh或ssh无密码访问配通CAE(CFD)石油勘探气象环境海洋图像渲染物质的物理化学材料属性的科研工作中基因科学、蛋白质科学的研究以及新药的研发地震资料处理,用于油气勘探气象环境海洋的数值预报动画、电影、图像的高逼真效果制作物理化学材料生命科学六大应用领域高性能计算在国内的六大应用领域计算机辅助工程,广泛应用于工业生产中其它:卫星图像处理、金融计算等物理化学材料:计算物理材料:vasp,cpmd,MaterialStudio。计算化学:gaussian、gamess,ADF。CAE领域:结构计算:ansys、abaques,nastran流体计算:fluent,CFX电磁仿真:Fecko生命科学:生物信息学:MPIBLAST,BWA等分子动力学:Namd,gromacs,lammps。药物设计:dock,autodock,DiscoveryStudio。主流高性能应用介绍气象海洋环境科学气象预报:WRF,MM5,Graphes海洋科学:roms石油勘探Omega,cgg等动漫渲染3dmax,Maya等主流高性能应用介绍高性能应用典型特征应用类别典型应用CPU内存容量内存带宽存储网络扩展性计算化学gaussian、ADF554543计算物理材料科学vasp,cpmd525254药物设计dock,autodock522225生物信息MPIBLAST、BWA544525分子动力学namd,gromacs522255环境科学WRF,Grapes533355流体力学Fluent、CFX544255结构力学Ansys,Abaques544532电磁仿真Fecko、Comsol554453地震资料处理omega,cgg544525串行程序大多数用户的自编程序,但是由于无法并行,无法利用多核多节点的优势,所以无法实现海量计算。多线程程序可以实现单节点内的并行,支持openmp,编程较为简单,核心数太多效率降低,同时无法实现多节点大规模并行消息传递并行程序MPI并行程序(目前主流的高性能应用普遍采用的并行方式,效率高,性能好)PVM并行程序任务级并行程序高性能应用软件的编程模型衡量高性能系统性能的评价指标-----理论峰值(FLOPS)FLOPS(浮点运算每秒)1、如何计算理论峰值:峰值=主频(GHz)*总核心数*4(4代表每个时钟周期做4次浮点运算)例如:10个AMD双路12核刀片(CPU6174,主频2.2)总核心数=10×2×12=240峰值=2.2×240×4=2112GFLOPS=2.1TFLOPS=2.1万亿次。GPU峰值:每C2050卡双精度峰值=0.515TFLOPS单精度峰值=1.03TFOPS双精度峰值=0.515*GPGPU卡数目(TFLOPS)单精度峰值=1.03*GPGPU卡数目(TFLOPS)衡量高性能系统性能的评价指标-----实测峰值(FLOPS)HPL(Linpach)测试---对系统进行整体计算能力的评价Linapck测试:采用主元高斯消去法求解双精度稠密线性代数方程组,结果按每秒浮点运算次数(flops)表示。HPL:针对大规模并行计算系统的测试,其名称为HighPerformanceLinpack(HPL),是第一个标准的公开版本并行Linpack测试软件包。用于TOP500与国内TOP100排名依据。使用者可以改变问题规模。有相当大的优化空间。衡量高性能系统性能的评价指标-----系统效率系统效率=实测峰值/理论峰值如何提高效率:(1)通过优化网络(2)通过优化测试程序的编译与设置(3)通过优化内存的配置与容量(4)通过优化运行参数及系统参数!目前:一套通过Infiniband网络互连的集群,效率一般在70%以上。加速比定律在并行计算系统,并行算法(并行程序)的执行速度相对于串行算法(串行程序)加快的倍数,就是该并行算法(并行程序)的加速比;加速比是衡量“并行收益”的重要指标;Amdahl定律适用于固定计算规模的加速比性能描述,Gustafson定律适用于可扩展问题。Amdahl定律S=(WS+WP)/(WS+WP/p)=1/(1/p+f(1-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越低,斜率会越大,加速性能越好。1定量测试系统的性能指标2验证整个系统配置的正确性3给系统加压,考量系统的可靠性高性能集群性能评测的目的高性能集群综合性能测评1Linpack测试2NPB测试3SPEC测试4可靠性测试HPCC包综合性能测评指标HPL(Linpach)测试---对系统进行整体计算能力的评价Linapck测试:采用主元高斯消去法求解双精度稠密线性代数方程组,结果按每秒浮点运算次数(flops)表示。HPL:针对大规模并行计算系统的测试,其名称为HighPerformanceLinpack(HPL),是第一个标准的公开版本并行Linpack测试软件包,用于TOP500与国内TOP100排名依据。使用者可以改变问题规模。有相当大的优化空间。Linpack测试1依赖环境:编译安装标准MPI程序,openmpi、intelmpi、mvapich2或mpich2均可编译安装优化的blas库,一般建议对于Intel平台,使用MKL,对于AMD平台,使用Gotoblas。2下载hpl-2.0.tar.gz源码包。3编译linpack程序。a)tar-zxfhpl-2.0.tar.gzb)cdhpl-2.0c)cpsetup/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=(或者注释此行)修改第85行为MPinc=(或者注释此行)修改第86行为MPlib=(或者注释此行)修改第95行为LAdir=(或者注释此行)如果blas选用MKL库,可以参考,本例中使用MKL10.3,静态链接MKL库基于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如果选用gotoblas库修改第97行为LAlib=/public/software/mathlib/goto2/libgoto2.a修改第169行为CC=mpicc(如果选用intelmpi,此处需要更改为mpiicc)基于CPU的Linpack测试步骤intel编译器修改第171行为CCFLAGS=-O3-xHost-ip-funroll-loopsgnu编译器修改第171行为CCFLAGS=-pipe-O3-fomit-frame-pointer-march=native-funroll-loops-ffast-mathpgi编译器修改第171行为CCFLAGS=-Bstatic-V-fastsse-Munroll=n:4-Mipa=fast,inline修改第174行为LINKER=mpicc,intelmpi修改为mpiicce)载入环境变量,确认自己使用的编译器环境以及MPIsource/public/software/mpi/openmpi-1.4.3-gnu.shf)makearch=gcc_openmpig)cdbin/gcc_openmpi此目录中的xhpl为编译成功的可执行程序,HPL.dat为数据文件基于CPU的Linpack测试步骤修改HPL.dat,一般需要修改3处1.问题规模的组数及大小,一般为1组:1#ofproblemssizes(N)40000Ns占用内存=N*N*8字节,一般占用所有测试节点物理内存总和的75%左右性能较优比如N=40000,占用物理内存=40000*40000*8Byte=12800000000Byte=11.92GB2.NB值,即矩阵分块大小,这个是经验值,一般设置为128、192、2322#ofNBs128192NBs这里表示运行2组,NB值分别为128和192运行linpack3、P和Q的设置(进程数目的设置),P和Q设置一般为1组1#ofprocessgrids(PxQ)4Ps4Qs要求:P×Q=进程数P=Q,P和Q尽量接近性能较好,如12进程,P=3/Q=4,若36进程,P=Q=6运行linpackHPL.dat中其它值得修改1#ofpanelfact012PFACTs(0=left,1=Crout,2=Right)1#ofrecursivestoppingcriterium428NBMINs(=1)1#ofpanelsinrecursion2NDIVs1#ofrecursivepanelfact.01RFACTs(0=left,1=Crout,2=Right)这些值对最