我使用一些共享内存库(例如 openmp、tbb 等)开发了一系列微基准测试,以检查它们如何根据线程数进行缩放。
目前我在 4 核处理器上运行它们,结果非常合理,但我在加速图上只得到 3 分。
为了获得更多数据并对其进行更广泛的分析,我计划在 32 核机器上运行它们。
一种可能性是购买 32 核处理器,例如 AMD Epyc 或 Intel Xeon,它们有点贵,但我知道我会得到什么。我的第二个更便宜的选择是在云上运行它们,比如 Amazon AWS 或 Microsoft Azure。
然后,在做出选择之前,我需要澄清一下:
据我了解,AWS 可以制造具有我想要的任意多内核的机器,但所有内核都是虚拟化的。
当我运行一个应用程序时,它的执行时间测量有多可靠?
当我在真正的 32 核处理器上运行应用程序时,我会获得相同的可扩展性吗?