首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >要加速计算的核心数量

要加速计算的核心数量
EN

Stack Overflow用户
提问于 2017-07-14 18:18:04
回答 1查看 2.4K关注 0票数 1

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

阿姆达尔定律:

代码语言:javascript
复制
Speedup = 1 / 1-p+ (p/n)

其中n=处理器的数量。

根据我的规格,它显示核心=4,而逻辑处理器=8

我应该在等式中使用什么作为number of processors

EN

回答 1

Stack Overflow用户

发布于 2017-07-14 19:20:31

首先,让我解释一下核心和逻辑处理器的含义,以防您不知道。核心是指实际的物理处理器核心,在您的案例中有4个核心。另一方面,逻辑处理器意味着,您正在使用超线程,这意味着在一个物理核心上,您可以同时运行两个进程。您可以在以下链接中找到更多信息:https://en.wikipedia.org/wiki/Hyper-threading

在你的问题中有两件事需要考虑。首先,Amdahl定律比超线程更早,因此定律本身假设您有物理处理器。其次,虽然超线程将提高性能,但如果您使用两个逻辑处理器而不是一个逻辑处理器,则性能不可能加倍。因此,从Amdahl定律的角度来看,如果您使用4个内核进行计算会更好。

例如,如果50%的代码可以并行化,有4个物理核心,那么您将拥有:

代码语言:javascript
复制
Speedup = 1/ ((1-0.5) + (0.5 / 4)) = 1.6

如果您使用8个处理器,您将拥有:

代码语言:javascript
复制
Speedup = 1/ ((1-0.5) + (0.5 / 8)) = 1.833

但是,在使用逻辑核心的情况下,您永远不会达到1.833。也许您最多可以达到1.7。在物理核使用情况下,由于内存延迟和分支,您可能会达到1.55。要记住的主要事情是,Amdahl定律不包括内核数量,而是到基线情况的加速,因此,您不会达到计算的理论数量。

注意:在研究界,对于性能计算和实验,超线程和逻辑核心通常不包括在内。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45100511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档