我正在寻找可靠的参考资料,以说明超级计算机在协调与完成与任务相关的实际工作中所花费的资源。资源可能具有可用的处理能力,但即使瓦特也似乎是有效的单位。
我相信我的一位教授或教科书曾说过,在大规模并行系统中,多达一半的可用处理能力用于协调任务和消息传递。不幸的是,我似乎找不到此参考文献或有关此比例的任何其他材料。
我意识到这将取决于超级计算机体系结构,并且在这方面现代实现可能会更有效率,因此,跨多个体系结构或演进(在专用消息传递硬件之前和之后)的该指标概述可能会更好。
我正在寻找可靠的参考资料,以说明超级计算机在协调与完成与任务相关的实际工作中所花费的资源。资源可能具有可用的处理能力,但即使瓦特也似乎是有效的单位。
我相信我的一位教授或教科书曾说过,在大规模并行系统中,多达一半的可用处理能力用于协调任务和消息传递。不幸的是,我似乎找不到此参考文献或有关此比例的任何其他材料。
我意识到这将取决于超级计算机体系结构,并且在这方面现代实现可能会更有效率,因此,跨多个体系结构或演进(在专用消息传递硬件之前和之后)的该指标概述可能会更好。
Answers:
HPLinpack基准测试一直是高性能计算中最受人喜爱的基准测试,它可以在求解非常大,密集,线性的方程组的同时,以每秒浮点运算的速度来衡量计算机系统的速度。假设解决方案需要 浮点运算,并且测试仪可以更改 以获得最佳性能。
基准测试包括RPEAK(系统每秒理论上最大的浮点操作数)和RMAX(HPLinpack基准中每秒达到的最大操作数)。
RPEAK通常是RMAX的很大一部分,这表明在此基准任务上,当前的超级计算机可以实现其理论峰值性能的很大一部分。例如,在2015年11月的TOP500超级计算机排名中,最快的机器Tianhe-2的RPEAK = 54.902 petaflops和RMAX = 33.863 petaflops。
但是,HPLinpack基准测试被广泛认为不能代表当前的工作负载。HPlinpack的结果通常会在很大程度上夸大超级计算机在实际应用中的性能。
正在开发一个称为HPCG的新基准。此基准涉及迭代方法中通常执行的操作,用于解决离散化PDE引起的大型稀疏方程组。对于高性能计算机,此工作负载更具挑战性。它也更代表了超级计算机在实践中的用途。
HPCG的一些早期结果不到RPEAK的5%。例如,Tianhe-2的RPEAK = 54.902 petaflops,HPCG为0.58 petaflops(请参阅下面有关HPCG的介绍)。
可以在以下位置找到TOP500 HPLinpack基准测试:
可以在以下位置找到有关HPCG的演示:
http://www.hpcg-benchmark.org/downloads/isc15/HPCG-ISC15-FINAL-SLIDES_update1.pdf
HPCG的网站位于
诚实的答案是我们不知道。答案很大程度上取决于实际运行的内容以及用户编写的代码。正如Brian Borchers指出的那样,我们拥有所有代码并据称知道该代码在做什么的两个基准测试之间有很大的差异,但是对于该代码在超级计算机用户实际操作中的代表性如何方面存在很多分歧。如果没有详细的源代码分析和在真实机器上的大量真实代码检测,要找到这样的比率几乎是不可能的。有一些项目正在开始收集数据,这些数据可能使社区接近回答这个问题,但是它根本没有解决。
实际上,这个问题甚至还不清楚。如果群集节点的通信卡上装有只能用于通信的处理器,那么您如何计算该卡空闲时间不处理通信(也不进行其他操作)的时间?即,什么算作“可用处理能力”?我们是否将那些未优化的计算和通信例程与优化的程序编写得差的程序算在内?如果有人在其代码中故意使用了未充分利用CPU的已知反模式怎么办?尴尬的是根本无法通信的并行程序(我保证这些程序会在超级计算机上运行)怎么办?
我不会浪费您的时间来尝试量化书中或您的教授的现成言论。这些语句提醒我们并行编程很难而且通常做得不好。超级计算机也不是完美设计,无法消除或优化所有浪费。