![在非超线程 Intel 处理器上运行线程](https://linux22.com/image/1338953/%E5%9C%A8%E9%9D%9E%E8%B6%85%E7%BA%BF%E7%A8%8B%20Intel%20%E5%A4%84%E7%90%86%E5%99%A8%E4%B8%8A%E8%BF%90%E8%A1%8C%E7%BA%BF%E7%A8%8B.png)
英特尔奔腾处理器 E5700(2M 缓存,3.00 GHz,800 MHz FSB)没有超线程,但它有 2 个内核,所以我假设它有 2 个线程
现在,如果我编写一个同时运行 4 个线程的繁重数字运算程序,那么与具有超线程的 Intel Core i3-3110M 处理器(3M 缓存,2.40 GHz)相比,此 E5700 处理器将如何使用其 2 个内核和 2 个线程同时处理 4 个线程?
E5700 是否会比具有 2 核 4 线程和超线程的 i3 3110m 更慢且存在瓶颈,还是在两种处理器上一切都会顺利且快速,而不会注意到任何差异?
此外,用四个或更多线程编写的程序是否可以在 2 核 2 线程处理器上有效运行,还是会出现错误或速度变慢?
#
好的,谢谢你回答我的问题,稍后我访问了这个网站,分数越短,处理器越好
http://www.cpu-world.com/benchmarks/socket_1155_multi.html
基准 wPrime v1.55 (32M) wPrime 基准测试测量计算从 1 到 33554431 的数字的平方根所需的时间。该程序使用牛顿法来估算函数。
对结果有很大影响的 CPU 特性:CPU 频率、浮点性能、核心/线程数。
对结果影响较小的 CPU 特性:内存速度、内部缓存的大小。
零件编号越短越好 结果
英特尔® 酷睿™ i7-3770K 处理器 (8M 缓存, 最高 3.90 GHz) 4 核 8 线程 支持 HT
6.87
英特尔® 酷睿™ i7-2600k 处理器(8M 缓存,最高 3.80 GHz)4 核 8 线程 支持 HT
7.57
英特尔® 酷睿™ i5-2500K 处理器(6M 缓存,最高 3.70 GHz)4 核 4 线程,无 HT
9.8
英特尔® 酷睿™ i3-2310 处理器(3M 高速缓存,2.10 GHz)2 核 2 线程 是 HT
15.37
英特尔® G860(3M 高速缓存,3.00 GHz)2 核 2 线程,无 HT
22.09
#
答案1
有关线程、CPU 核心和超线程的一些背景知识,你可能需要阅读这个问题什么是线程?它们在处理器中起什么作用?
现在,如果我编写一个同时运行 4 个线程的繁重数字运算程序,那么 E5700 处理器将如何使用其 2 个内核和 2 个线程同时处理 4 个线程
应用程序所需的线程数无关紧要 - 我可以编写一个启动 1000 个线程的程序,它们都“同时”运行。这里的关键是你的操作系统的调度程序它在特定的时间单位内在特定的 CPU 核心上运行每个线程(线程运行的顺序以及在哪个核心上运行取决于调度算法)。
与具有超线程的 Intel® Core™ i3-3110M 处理器(3M 高速缓存,2.40 GHz)相比,该处理器具有 2 个内核但 4 个线程
尽管有超线程,但无法将应用程序性能与类似的处理器进行比较。应用程序需要针对它进行专门优化(因为物理核心的数量仍然只有逻辑核心的一半)。在某些不同情况下,应用程序可能在超线程的情况下运行得更快已禁用(尽管许多应用程序做受益)。无论超线程如何,增加身体的核心将总是益处多线程应用程序。
最后,您正在比较 E5700 和 i3 3110m。这是两种不同的(不是完全不同的,但它们是不同的)处理器架构;它们具有不同的功能和不相等的管道长度1 2。这里要考虑的不仅仅是处理器核心的原始数量,但出于讨论的目的,您可以忽略它们,只需阅读我上面写的内容。
- J. De Gelas,“推土机后果:进一步探究。”AnandTech,第 2 页。
- 英特尔® 64 和 IA-32 架构软件开发人员手册,第 1 卷,第 2 章,第 2.3 节 - 英特尔® 酷睿™ 微架构
答案2
其他答案是正确的,对于计算密集型任务,在 2 个内核上使用 4 个线程运行的速度会比 2 个线程慢。调度线程以及切换寄存器状态时 CPU 中的上下文切换会产生开销。然而,似乎没有指出的一点是,如果这些线程中有阻塞 I/O,则这不成立。在这种情况下,线程数多于内核可能会运行得更快,因为线程将在缓慢的 I/O 操作上阻塞,并允许其他 CPU 密集型代码部分继续运行。