我使用一些共享内存库(例如openmp,tbb等)开发了一系列微基准测试,以检查它们如何根据线程数进行扩展。
目前我正在4核处理器上运行它们,结果是相当合理的,但是在加速图上我只得到3分。
为了获得更多数据并对其进行更广泛的分析,我打算在32核计算机上运行它们。
一种可能性是购买32核处理器,例如AMD Epyc或Intel Xeon,它们有点贵,但是我知道我会从中得到什么。 我第二个较便宜的替代方法是在Amazon AWS或Microsoft Azure等云上运行它们。
然后,在做出选择之前,我需要澄清一下:
据我了解,AWS可以使一台机器具有我想要的尽可能多的核心,但是所有这些核心都是虚拟化的。
运行应用程序时,执行时间的可靠性如何?
我将在真正的32核处理器上运行该应用程序时获得相同的可伸缩性吗?
答案 0 :(得分:0)
根据数十年来虚拟化性能的经验,这是一个要谨慎的领域。在很大程度上取决于虚拟机与其他虚拟机之间涉及的争用程度,在许多云环境中,如果没有工具,这是很难知道的。 另外,不清楚您是否正在讨论经过时间和/或处理器时间。两者都可能受到虚拟化的影响,尽管我的经验是经过时间的可变性更大。 我无法说出列出的环境,但是在IBM Z虚拟化解决方案中,我们提供的指标涵盖了虚拟机消耗的处理器时间和虚拟机管理程序消耗的时间。为了您的目的,您只需要虚拟机消耗的资源。抱歉,我不知道您提到的两个平台是否提供了该信息。 在这些类型的实验中,我们经常发现进行更多的测量迭代以查看运行时的可变性很有用。