8得票1回答
一个超线程核心是否共享MMU和TLB?

据我所知,在Intel x86_64的超线程核心中,MMU和TLB都不是共享的。 然而,如果两个不共享地址空间的线程被调度到同一个物理核心,它们会如何运行? 我认为,在这种情况下,线程没有任何机会命中TLB,因为线程有自己的地址空间。 那么,我认为性能将会受到很大的降级。

8得票1回答
超线程如何影响并行化?

我在使用一台支持超线程的CPU上运行一个OpenMP代码。 如果其他条件相同,那么在不支持超线程的CPU上性能会如何变化? 我注意到无论我运行多少个线程,处理器利用率都达到了100%,但是改变线程数确实可以提高性能。这是怎么回事? 对于非英特尔的多线程CPU,情况是否相同?

8得票1回答
超线程技术与超标量执行

想象一下一个CPU(或核心)是超标量的(具有多个执行单元),并且也支持超线程(SMT)。 为什么CPU实际可以并行执行的软件线程数量通常由它拥有的逻辑核数(即所谓的硬件线程)而不是它拥有的全部执行单元的数量来确定? 如果我理解正确,SMT实际上并没有使真正的并行执行成为可能,而是通过复制某些...

7得票2回答
OpenMP:不要使用超线程核心(使用超线程时为`num_threads()`的一半)

在 Is OpenMP (parallel for) in g++ 4.7 not very efficient? 2.5x at 5x CPU 中,我发现在使用默认的 #pragma omp parallel for 时,我的程序在大约500%的CPU下的性能在11秒到13秒之间变化(大多数...

7得票2回答
最新的Xeon处理器在FP-intensive hyperthreading性能方面表现如何?

我们最近购买了一台双 Intel X5650 工作站,用于在 Ubuntu 10.04 下运行浮点密集型模拟。 每个 X5650 有 6 个核心,总共有 12 个核心。代码是微不足道的并行,所以我主要使用 12 个线程运行它,并通过 "top" 观察到约 "1200%" 的处理器利用率。 ...

7得票2回答
SSE和超线程

SSE寄存器在逻辑处理器(超线程)之间是共享还是复制的?对于一个SSE密集型程序,我能期望与普通程序一样的并行加速吗(英特尔声称处理器超线程可达30%)?

7得票1回答
禁用超线程还是更改ProcessorAffinity(处理器亲和力)?

我注意到我的一些多线程计算在BIOS中禁用超线程后会更快。 我还学习到,我可以通过修改当前进程的处理器亲和度,编程地禁用(逻辑)CPU。例如,在C#中可以像这样实现: // using System.Diagnostics; var current = Process.GetCurrent...

7得票1回答
在同一个具有超线程技术的核心上执行的线程之间,用于数据交换的是什么?

超线程技术是英特尔推出的一种同时多线程技术。 这些资源包括执行引擎、缓存和系统总线接口。资源共享使得两个逻辑处理器更有效地协同工作,并允许一个停滞的逻辑处理器从另一个逻辑处理器借用资源。 在带有Hyper-Threading的英特尔CPU中,一个CPU核心(具有多个ALU)可以在同一时钟...

7得票3回答
我该如何在MATLAB中查询物理核心数?

有没有人知道如何从MATLAB查询物理核心数?我想要获取物理核心的数量而不是逻辑核心(当启用超线程时可能会有区别)。 我需要这个方法可以跨平台运行(Windows和Linux,不关心Mac),但我很乐意使用两种不同的方法,并根据计算机输出的结果使用switch语句。 到目前为止,我尝试过:...

7得票4回答
在Windows、Mac和Linux上通过编程检测超线程是否激活的C/C++/Assembly程序

我已经能够在这三个平台上正确检测逻辑处理器的数量。 为了能够正确检测物理处理器/核心的数量,我需要检测是否支持并启用超线程(或者您更喜欢的术语是激活),如果是,则将逻辑处理器数量除以2来确定物理处理器的数量。 也许我应该提供一个例子: 启用超线程的四核英特尔CPU具有4个物理核心,但有8...