主要内容

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

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

准备HPC挑战

属性在集群中启动一个并行的工作人员池parpool函数。默认情况下,parpool使用默认集群配置文件创建并行池。的默认群集配置文件首页标签,in.平行>选择默认集群.在这个基准中,工人们相互沟通。如果需要优化worker间的通信,请设置'spmdenabled'真正的

池= parpool ('spmdenabled',真正的);
使用MyCluster配置文件启动并行池(parpool)…连接到64个工人。

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

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

运行HPC挑战

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

HPL

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

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

DGEMM

hpccDGEMM (m)度量实矩阵-矩阵乘法的执行率。它产生随机分布实矩阵一个B,C的大小——- - - - - -,并计算执行矩阵乘法的时间C = C + A*B在平行,αbet是随机的标量。性能以十亿次浮点运算的速度返回。

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

溪流

hpccSTREAM (m)评估集群的内存带宽。它创造了随机分布的向量bc的长度,和一个随机标量k,计算a = b + c * k.此基准测试不使用互操作者通信。性能在每秒千兆字节中返回。

streamResult = hpccSTREAM (dataSizes.STREAM);
启动HPCC基准:STREAM的数据大小:10.6667 GB。在64个工人的池上运行分析文件并将文件传输给工人…完成。完成HPCC基准:流在0.0796962秒。

PTRANS

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

ptransResult = hpccPTRANS (dataSizes.PTRANS);
启动HPCC基准:PTRANS,数据大小:9.27515 GB。在64个工人的池上运行分析文件并将文件传输给工人…完成。完成HPCC基准:PTRANS在6.43994秒。

RandomAccess

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

addAttachedFiles(池,{“hpccRandomNumberGeneratorKernel.mexa64”“hpccRandomNumberGeneratorKernel.mexw64”“hpccRandomNumberGeneratorKernel.mexmaci64”});randomAccessResult = hpccRandomAccess (dataSizes.RandomAccess);
启动HPCC基准:RandomAccess,数据大小:16gb。在64个工人的池上运行分析文件并将文件传输给工人…完成。完成HPCC基准:RandomAccess在208.103秒。

FFT

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

fftResult = hpccFFT (dataSizes.FFT);
启动HPCC基准:FFT数据大小:8gb。在64个工人的池上运行分析文件并将文件传输给工人…完成。完成HPCC基准:FFT 11.772秒。

显示结果

每个基准测试都会产生一个带有统计信息的表行。连接这些行以提供测试结果的摘要。

allResults = [hplResult;dgemmResult;streamResult;...ptransResult;randomAccessResult;fftResult];disp (allResults);
基准数据表现时间表现___________________________________________________________________________________________________________________19.82 773.11“GFLOPS”9.2752 69.365 1266.4“GFLOPS”流动“10.667 0.079696 4.667”GBPERSEC“”PTRANS“9.2752 6.4399 1.5465”GBPERSEC“”QUANCEACAS“16208.1 0.010319“GUP”“FFT”8 11.772 6.6129“GFLOPS”

将计算与批处理

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

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

删除(gcp);

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

  • “池”:为作业创建一个带有worker的并行池。在这种情况下,指定32工人。hpccBenchmark在这些worker上运行HPC Challenge。

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

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

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

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

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

等待(工作);结果= fetchOutputs(工作);{1} disp(结果)
基准DataSizeGB时间性能性能单位______________ __________ ________ ___________ ________________ "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每台机器的物理核。注意,在这个基准测试中,数据的大小随着工人数量的增加而增加。

另请参阅

|

相关话题