如何衡量多线程代码如何扩展(加速)?

Pub*_*bby 9 c++ parallel-processing multithreading profiling

假设我只有4个核心,那么衡量程序加速的最佳方法是什么?显然我可以测量到4,但是知道8,16等等会很好.

理想情况下,我想知道每个线程数的加速量,类似于此图:

阿姆达尔的法律图

有什么方法可以做到这一点吗?也许是一种模拟多核的方法?

inf*_*inf 2

我也不认为有真正的方法可以做到这一点,但我想到的一件事是您可以使用虚拟机来模拟更多内核。例如,在 VirtualBox 中,您可以从标准菜单中选择最多 16 个核心,但我非常有信心,有一些技巧可以使更多核心成为可能,而其他虚拟机(例如 VMware)甚至可能支持更多开箱即用的核心。

在此输入图像描述