2010-08-24 77 views
4

alt text多核CPU单线程的行为,没有达到100%

你可以从所附的图像看我的双核机器上的CPU图是古怪对称!

这是一种负载平衡,以防止一个核心比另一个使用更多?背后的原因是什么(热量分布可能)?

当然我主要关心的是:我的单线程PSNR图像算法达到100%吗?

CPU是运行Ubuntu 10.4的Core 2 Duo E6850 3Ghz。

感谢

罗斯

+0

内核不专用于线程。所以,线程中的任务可能会被放到不同的内核中。 – Kangkan 2010-08-24 10:28:24

+0

只是一个想法:也许它与图形程序有关,因为在图上的某些点上,你可能会争辩说,这个过程在两个核心之间传播50:50。虽然我认为这是不可能的?我对吗? – ross 2010-09-07 16:12:27

回答

4

您正在使用两个CPU实现50%的负载。您的程序没有附加到固定的CPU上,因此它将进行切换,具体取决于内核(以及系统上运行的其他进程)。

如果您想确保您的进程正在其中一个内核上运行,则必须设置关联(Example here)。这样,您应该在一个内核上看到100%的负载,另一个用于其他任务。

+0

我想这就是为什么他们称之为对称多处理!我不认为我在Windows中看到过这种行为。 从计算机科学的角度理解它是如何工作的将会很棒。我想知道是否有任何折衷,如核心转换之间的滞后时间? – ross 2010-08-24 11:11:36

+0

在SMP(对称多处理)中,对称意味着所有CPU相等。非对称意味着某些CPU不同,并且根据要实现的任务将任务分配给CPU。 – Scharron 2010-08-24 11:54:56

+0

据我所知,Linux正试图在CPU上粘贴一个进程。它避免了清除一些缓存,并重新加载完整的处理器上下文(寄存器,...)。但是,如果其他进程(例如优先级更高)确实需要此CPU(因为另一个进程已经很忙),则可以暂停它们,然后处理器将它们放回下一个可用的CPU。 – Scharron 2010-08-24 11:57:28

0

(本来应该用于此意见,但我没有足够的代表!)

我遇到过这种情况不止一次以前多了,并始终与应用冲突。

例如,它可能发生在compiz启动两次或部分未被启用时。我发现在同时阅读两个不同玩家的DVD时也会发生这种情况。

以我的经验,这不是正常的行为:电脑变慢了很多,当你试图修复它时,这很烦人!

+0

“(应该使用这个评论,但我没有足够的代表!)”...投票下来不会帮助我...但确定。但是,你并没有告诉我这是正常的行为。这是一个未能卸载杰克:http://yfrog.com/n6screenshotsmp – 2010-08-24 11:03:28