对于许多并行程序,并行化带来了巨大的成本,使得加速亚线性。在这种情况下,并行版本的能源效率低于顺序版本。但是,人们可能会同时关心时间性能和能源效率,是否有任何特定的指标通常用于此目的?
更具体地说,一种可以确定最佳能量和性能目标的线程数的指标。
对于许多并行程序,并行化带来了巨大的成本,使得加速亚线性。在这种情况下,并行版本的能源效率低于顺序版本。但是,人们可能会同时关心时间性能和能源效率,是否有任何特定的指标通常用于此目的?
更具体地说,一种可以确定最佳能量和性能目标的线程数的指标。
最常见的指标是每瓦性能。看看“Green500 名单”。维基百科也有一篇关于每瓦性能的文章。该指标并不像最初出现的那样明确,因为“性能”并不明确。FLOPS目前非常流行,但也有很多不足之处。我不同意性能/瓦特不能用于评估软件的性能。根据您的应用,您可能希望使用性能/瓦特/秒。
我不知道如果并行性要花费您,您为什么要确定能源效率。事实上,我真的不明白并行性如何降低能源效率,除非您使用单核机器,进行纯计算,并且在线程之间进行大量颠簸。我猜这不是你自己的代码。
软件电源效率:最重要的两个因素是:
这些因素分解成一大堆其他更具体的指导方针:
在并行线程之间划分计算应该会减少计算时间,否则为什么要增加它的复杂性?(是的,我知道某些编程结构,例如递归,可以使代码更简单、更清晰,但性能更差,但这些是例外。)减少计算应该会提高能源效率。如果没有,请查看算法和代码实践。
如果您可以向我提供有关您的应用程序的更多详细信息,我也许可以提出更具体的建议。