如何获得最好的LINPACK结果并征服Top500?

给定一个拥有数百/数千个节点的大型Linux HPC群集 。 为了获得最好的LINPACK基准testing ( HPL )结果,您可以提交 Top500超级计算机列表 的最佳做法是什么?

给你一个想法,我想在这里得到什么样的答案是一些子问题(带有链接):

  • 如何调整 HPL.dat文件的参数 ( NNBPQ ,内存alignment方式等)(无需花太多时间尝试每个可能的排列 – 特别是大问题N)?
  • 是否有任何Top500 提交规则要注意? 什么是允许的,什么不是?
  • 哪个MPI产品,哪个版本? 这有什么不同吗?
  • MPI机器文件中的任何特殊主机命令
  • 你用CPU钉住
  • 如何configuration互连 ? 哪个互连?
  • 你使用哪种CPU型号的BLAS软件包? ( 英特尔MKL , AMD ACML , GotoBLAS2等)
  • 你如何准备大运行 (在所有节点上)? 从节点子集上的小运行开始,然后扩展? 是否真的有必要在所有节点上运行LINPACK(或允许外推)?
  • 你如何优化最新的英特尔/ AMD处理器? 超线程 ? NUMA ?
  • 重新编译软件堆栈还是使用预编译的二进制文件是否值得? 哪些设置? 哪个编译器优化,哪个编译器? (基于configuration文件的编译呢?)
  • 如何获得最好的结果只有有限的时间做基准运行? (你可以永远阻止一个巨大的集群)
  • 你如何准备单个节点 (停止系统守护进程,释放内存等)?
  • 你如何处理硬件故障 (破坏一个巨大的运行)?
  • 有没有关于这个话题的必读文档或网站 ? 例如,我很想听听一些目前Top500系统的一些背景故事 ,以及他们如何做LINPACK基准testing。

我故意不想提及具体的硬件细节或讨论硬件build议,因为我不想限制答案。 不过,随便提一下提示,例如特定的CPU型号。

试试这个工具可能对你有所帮助,它build议调整一些关键的HPL参数的值,并且一步一步地在集群上运行HPL。 该工具还根据您的系统规格估算您在TOP500列表中的排名:

http://hpl-calculator.sourceforge.net

希望对你有帮助。