2010-08-24 76 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