gpt4 book ai didi

multithreading - 4 个内核的 8 个逻辑线程并行运行速度最多可提高 4 倍?

转载 作者:行者123 更新时间:2023-12-04 00:08:54 25 4
gpt4 key购买 nike

我正在基准测试软件,它在 Intel 2670QM 上的执行速度比我的串行版本快 4 倍,使用我的所有 8 个“逻辑”线程。我想要一些关于我对基准测试结果的看法的社区反馈。

当我在 4 个内核上使用 4 个线程时,我的速度提高了 4 倍,整个算法是并行执行的。这对我来说似乎合乎逻辑,因为“Amdhals 定律”预测了这一点。 Windows 任务管理器告诉我我正在使用 50% 的 CPU。

但是,如果我在所有 8 个线程上执行相同的软件,我将再次获得 4 倍的加速而不是 8 倍的加速。

如果我理解正确的话:我的 CPU 有 4 个内核,频率分别为 2.2GHZ,但是当应用于 8 个“逻辑”线程时,频率被分为 1.1GHZ,其余组件(例如高速缓存)也是如此?如果这是真的,那么为什么任务管理器声称我的 CPU 只使用了 50%?

#define NumberOfFiles 8
...
char startLetter ='a';
#pragma omp parallel for shared(startLetter)
for(int f=0; f<NumberOfFiles; f++){
...
}

我不包括使用磁盘 I/O 的时间。我只对 STL 调用花费的时间(STL 排序)而不是磁盘 I/O 感兴趣。

最佳答案

一个 i7-2670QM处理器有 4 个内核。但它可以并行运行 8 个线程。
这意味着它只有 4 个处理单元(核心),但在硬件上支持并行运行 8 个线程。这意味着在内核上最多运行四个作业,如果其中一个作业由于例如内存访问而停止,另一个线程可以非常快速地在空闲内核上开始执行,而损失很小。 Read more on Hyper threading .在现实中,很少有超线程带来巨大性能提升的场景。更现代的处理器比旧处理器更好地处理超线程。

您的基准测试表明它受 CPU 限制,即管道中几乎没有停顿会给超线程带来优势。 50% 的 CPU 是正确的,4 个内核正在工作,而 4 个额外的内核没有做任何事情。在 BIOS 中打开超线程,您将看到 100% CPU。

关于multithreading - 4 个内核的 8 个逻辑线程并行运行速度最多可提高 4 倍?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10403201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com