主要内容

用HPC挑战对集群进行基准测试

这个例子展示了如何使用HPC挑战基准测试评估计算集群的性能。基准测试由几个测试组成,这些测试度量不同的内存访问模式。有关更多信息,请参见HPC挑战基准

准备HPC挑战赛

方法在集群中启动并行工作池parpool函数。默认情况下,parpool使用默认集群配置文件创建并行池。上的默认集群配置文件首页选项卡,在平行>选择默认集群.在这个基准测试中,工作人员彼此通信。为保证最优化的互通,请设置“SpmdEnabled”真正的

池= parpool (“SpmdEnabled”,真正的);
使用“MyCluster”配置文件启动并行池(parpool)…与64名工人相连。

使用hpccDataSizes函数计算满足HPC挑战要求的每个基准测试的问题大小。这个大小取决于worker的数量和每个worker可用的内存量。例如,允许每个工人使用1gb。

gbPerWorker = 1;dataSizes = hpccDataSizes (pool.NumWorkers gbPerWorker);

运行HPC挑战赛

HPC Challenge基准测试由几个部分组成,每个部分探索系统不同方面的性能。在下面的代码中,每个函数运行一个基准测试,并返回一个包含性能结果的行表。这些函数测试分布式数组上的各种操作。MATLAB在多个并行工作者之间划分分布式数组,因此它们可以使用集群的组合内存和计算资源。有关分布式阵列的更多信息,请参见分布式阵列

HPL

hpccHPL (m),被称为Linpack基准测试(Linpack Benchmark),它衡量求解线性方程组的执行率。它创建了一个随机分布实矩阵一个的大小——- - - - - -一个真实的随机分布向量b的长度,并测量求解系统的时间x = A \ b并行执行。性能以十亿次浮点运算(每秒数十亿次浮点运算)的速度返回。

hplResult = hpccHPL (dataSizes.HPL);
启动HPCC基准测试:数据大小为27.8255 GB的HPL。在64个工作人员的池中运行分析文件并向工作人员传输文件…完成。用196.816秒完成HPCC基准测试:HPL

DGEMM

hpccDGEMM (m)度量实矩阵-矩阵乘法的执行率。它创建了随机分布实矩阵一个B,C的大小——- - - - - -,并度量执行矩阵乘法的时间C = *C + *A*B在平行,α而且β是随机的标量。性能以每秒千万亿次的速度返回。

dgemmResult = hpccDGEMM (dataSizes.DGEMM);
启动HPCC基准测试:DGEMM,数据大小:9.27515 GB。在64个工作人员的池中运行分析文件并向工作人员传输文件…完成。用69.3654秒完成HPCC基准:DGEMM。

hpccSTREAM (m)评估集群的内存带宽。它创建了随机分布向量b而且c的长度,和一个随机标量k,计算A = b + c*k.该基准测试不使用工作者之间的通信。性能以每秒千兆字节为单位返回。

streamResult = hpccSTREAM (dataSizes.STREAM);
启动HPCC基准测试:数据大小为10.6667 GB的STREAM。在64个工作人员的池中运行分析文件并向工作人员传输文件…完成。完成HPCC基准:STREAM在0.0796962秒。

PTRANS

hpccPTRANS (m)衡量系统的进程间通信速度。它创建了两个随机分布矩阵一个而且B的大小——- - - - - -,计算一个“+ B.返回的结果以每秒千兆字节为单位。

ptransResult = hpccPTRANS (dataSizes.PTRANS);
启动HPCC基准测试:数据大小为9.27515 GB的PTRANS。在64个工作人员的池中运行分析文件并向工作人员传输文件…完成。在6.43994秒内完成HPCC基准测试:PTRANS

RandomAccess

hpccRandomAccess (m)度量分布式向量中每秒可随机更新的内存位置的数量。结果以GUPS(每秒千兆更新)的形式返回。在这个测试中,工作人员使用编译成MEX函数的随机数生成器。将每个操作系统体系结构的这个MEX函数的一个版本附加到并行池,以便工作人员可以访问与他们的操作系统相对应的那个版本。

addAttachedFiles(池,{“hpccRandomNumberGeneratorKernel.mexa64”“hpccRandomNumberGeneratorKernel.mexw64”“hpccRandomNumberGeneratorKernel.mexmaci64”});randomAccessResult = hpccRandomAccess (dataSizes.RandomAccess);
启动HPCC基准测试:随机访问,数据大小:16 GB。在64个工作人员的池中运行分析文件并向工作人员传输文件…完成。208.103秒完成HPCC基准测试:RandomAccess

FFT

hpccFFT (m)度量并行快速傅立叶变换(FFT)计算在分布长度向量上的执行率.该测试测试了系统的运算能力和通信性能。性能以每秒千万亿次的速度返回。

fftResult = hpccFFT (dataSizes.FFT);
启动HPCC基准测试:FFT,数据大小:8 GB。在64个工作人员的池中运行分析文件并向工作人员传输文件…完成。完成HPCC基准:FFT 11.772秒。

显示结果

每个基准测试的结果都是包含统计信息的单个表行。将这些行连接起来以提供测试结果的摘要。

allResults = [hplResult;dgemmResult;streamResult;...ptransResult;randomAccessResult;fftResult];disp (allResults);
Benchmark DataSizeGB Time Performance PerformanceUnits ______________ __________ ________ ___________ ________________ "HPL" 27.826 196.82 773.11 "GFlops" "DGEMM" 9.2752 69.365 1266.4 "GFlops" "STREAM" 10.667 0.079696 431.13 "GBperSec" "PTRANS" 9.2752 6.4399 1.5465 "GBperSec" "RandomAccess" 16 208.1 0.010319 "GUPS" "FFT" 8 11.772 6.6129 "GFlops"

将计算与批处理

您可以使用批处理函数将HPC Challenge中的计算卸载到您的集群,并继续在MATLAB中工作。

使用前批处理,删除当前并行池。如果并行池已经使用了所有可用的工作者,则无法处理批处理作业。

删除(gcp);

发送函数hpccBenchmark作为批处理作业向集群发送批处理.此函数调用HPC Challenge中的测试,并在表中返回结果。当你使用批处理,一个工人扮演MATLAB客户端的角色并执行函数。另外,指定这些名称-值对参数:

  • “池”:为该工作创建一个并行池。在本例中,指定32工人。hpccBenchmark在这些工人身上进行高性能计算挑战赛。

  • “AttachedFiles”:将文件传输到池中的工作者。在这种情况下,附加一个版本的hpccRandomNumberGeneratorKernel对于每个操作系统体系结构。操作时,工作人员访问与他们的操作系统相对应的hpccRandomAccess测试。

  • “CurrentFolder”:设置工人的工作目录。如果不指定此参数,MATLAB将工人的当前目录更改为MATLAB客户端的当前目录。将其设置为“。”如果您想使用工作者的当前文件夹。当工作者使用不同的文件系统时,这很有用。

gbPerWorker = 1;工作=批(@hpccBenchmark 1 {gbPerWorker},...“池”32岁的...“AttachedFiles”,{“hpccRandomNumberGeneratorKernel.mexa64”“hpccRandomNumberGeneratorKernel.mexw64”“hpccRandomNumberGeneratorKernel.mexmaci64”},...“CurrentFolder”“。”);

提交作业后,您可以继续在MATLAB中工作。您可以使用作业监视器检查作业的状态。在首页选项卡,环境区域,选择平行>监控工作

在这种情况下,等待作业完成。要从集群检索结果,请使用fetchOutputs函数。

等待(工作);结果= fetchOutputs(工作);{1} disp(结果)
Benchmark DataSizeGB时间性能PerformanceUnits ______________ __________ ________ ___________ ________________ "HPL" 13.913 113.34 474.69 "GFlops" "DGEMM" 4.6376 41.915 740.99 "GFlops" "STREAM" 5.3333 0.074617 230.24 "GBperSec" "PTRANS" 4.6376 3.7058 1.3437 "GBperSec" "RandomAccess" 8 189.05 0.0056796 "GUPS" "FFT" 4 7.6457 4.9153 "GFlops"

当您使用大型集群时,将增加可用的计算资源。如果花在计算上的时间超过了花在员工之间沟通上的时间,那么您的问题可以很好地扩展。下图显示了HPL基准在集群上随工作人员数量的伸缩情况4机器和18每台机器的物理内核。注意,在这个基准测试中,数据的大小随着工作人员的数量而增加。

另请参阅

|

相关的话题

Baidu
map