超算简介

Written by thethomason
参考链接

超算的赛题一般是1 benchmark + 1 applications + 1 MIC(Intel Xeon Phi) program。经验贴

HPL测试:找到最适合的参数,达到最优秀的计算能力
benchmark 英语翻译为:基准点

可以理解为跑分。用来测试系统和软件表现的。 基准,用于基准测试,就是一个性能的衡量基准,例如:测试你编写的算法,基准是每秒处理10条数据,你的算法基于用例能跑出每秒11条数据,就证明你的算法比基准优

操作步骤:登录远程主机,设置基准点,我们调节参数,然后跑程序。
HPL是针对现代并行计算机提出的测试方式,Linpack是国际上最流行的用于测试高性能计算机系统浮点性能的benchmark。通过对高性能计算机采用高斯消元法求解一元N次稠密线性代数方程组的测试,评价高性能计算机的浮点性能。

用户在不修改任意测试程序的基础上,可以调节问题规模大小(矩阵大小)、使用CPU数目、使用各种优化方法等等来执行该测试程序,以获取最佳的性能。HPL采用高斯消元法求解线性方程组。求解问题规模为N时,浮点运算次数为(2/3N^3-2N^2)。因此,只要给出问题规模N,测得系统计算时间T,峰值=计算量(2/3N^3-2N^2)/计算时间T,测试结果以浮点运算每秒(Flops)给出,衡量计算机性能的一个重要指标就是计算峰值或者浮点计算峰值。HPL测试结果是TOP500排名的重要依据。

在比赛中,参赛队正确安装和编译HPL包之后,通过一定的配置修改,开始运行HPL,HPL的运行方式和MPI密切相关,不同的MPI在运行方面有一定的差别。运行结束输出结果后,参赛队需要针对实际测试结果进行分析,不断修改配置,优化测试,以取得满意的结果

一般初赛的benchmark都是linpack,世界top500的超算集群就是用linpack的性能(G/Tflops)来排名的。ASC15初赛时把benchmark换成了HPCC,实际上HPCC = HPL(High performance Linpack)+ 一些奇奇怪怪的硬件性能测试。并且在决赛的时候HPCC被换成了HPL,因此linpack测试应该是每年都会有的一个项目。

application优化

为什么要进行软件优化
硬件发展日新月异,10年前,我们没有22核心的处理器;10年前,超算里没有协处理器;10年前,最强大的超算也不过6万个物理核心,而TOP500中的大多数超算都没有达到万核级。而今天,TOP500前十名中绝大多数都是数十万核心级别的系统,而像天河2号这样的顶级超算更是达到了300万核心。硬件的巨大进步,和软件的停滞不前在实际应用中的表现就是硬件资源闲置或低效运转。

解铃还须系铃人,要想更好的利用超算里的计算资源还需要超算处理器的设计者来帮忙。面对这样的局面,英特尔并没有回避,而是与中科院网络信息中心携手推建立IPCC并行计算中心。其目的就是要为各个领域的超算用户提供软件代码的优化服务,让超算上的软件能够更有效的利用先进的硬件架构,跑得更快。

在产业端,英特尔早就与浪潮联合推出了《MIC高性能计算编程指南》一书,这本书也是全球第一本专门针对英特尔MIC架构高性能计算系统所推出工具书,而且这本书是中文的。
MIC程序优化
MIC程序优化是ASC比赛的一个很重要的项目,会给一份不长的串行或者并行效率不高的子程序,这个子程序一般是大型应用的一个热点函数。比如ASC15中SKA的Gridding,核心循环只有不到10行左右3个嵌套循环。MIC优化可以做的工作很多,算法优化、缓存优化、向量化、改写汇编都是常见的。当然MIC编程的坑很多,我不是负责MIC应用的我就不多说了。一般MIC程序优化这个项目是占分最多的。

results matching ""

    No results matching ""