我正在尝试使用Amdahl定律计算代码的加速比,以下是我的CPU规格:

阿姆达尔定律:
Speedup = 1 / 1-p+ (p/n)其中n=处理器的数量。
根据我的规格,它显示核心=4,而逻辑处理器=8
我应该在等式中使用什么作为number of processors?
发布于 2017-07-14 19:20:31
首先,让我解释一下核心和逻辑处理器的含义,以防您不知道。核心是指实际的物理处理器核心,在您的案例中有4个核心。另一方面,逻辑处理器意味着,您正在使用超线程,这意味着在一个物理核心上,您可以同时运行两个进程。您可以在以下链接中找到更多信息:https://en.wikipedia.org/wiki/Hyper-threading
在你的问题中有两件事需要考虑。首先,Amdahl定律比超线程更早,因此定律本身假设您有物理处理器。其次,虽然超线程将提高性能,但如果您使用两个逻辑处理器而不是一个逻辑处理器,则性能不可能加倍。因此,从Amdahl定律的角度来看,如果您使用4个内核进行计算会更好。
例如,如果50%的代码可以并行化,有4个物理核心,那么您将拥有:
Speedup = 1/ ((1-0.5) + (0.5 / 4)) = 1.6如果您使用8个处理器,您将拥有:
Speedup = 1/ ((1-0.5) + (0.5 / 8)) = 1.833但是,在使用逻辑核心的情况下,您永远不会达到1.833。也许您最多可以达到1.7。在物理核使用情况下,由于内存延迟和分支,您可能会达到1.55。要记住的主要事情是,Amdahl定律不包括内核数量,而是到基线情况的加速,因此,您不会达到计算的理论数量。
注意:在研究界,对于性能计算和实验,超线程和逻辑核心通常不包括在内。
https://stackoverflow.com/questions/45100511
复制相似问题