我在具有24個內核的共享Linux計算機上運行大規模並行科學計算作業。大多數情況下,當這臺計算機上沒有其他任何內容運行時,我的作業可以擴展到24個內核。然而,看起來就像即使一個不是我的單線程作業正在運行時,我的24線程作業(我爲高漂亮值設置)也只能達到〜1800%的CPU(使用Linux符號)。同時,大約500%的CPU週期(再次使用Linux符號)是空閒的。任何人都可以解釋這種行爲,我能做些什麼來獲得所有未被別人使用的23個內核?Linux 2.6.31調度程序和多線程作業
注:
如果它是相關的,我觀察這個上略有不同的內核版本,但我不記得是哪了我的頭頂。
CPU架構是x64。是否所有可能的事實是,我的24核心工作是32位的,而我正在競爭的其他工作是64位的是相關的?
編輯:我剛剛注意到的一件事是,多達30個線程似乎在一定程度上緩解了這個問題。它讓我高達2100%的CPU。
如果只運行產生n個線程的單個進程,那麼只會影響您_own_的進程。您只能與單個進程競爭。這臺機器上有root/sudo可用嗎? – 2010-05-13 17:16:55
如果你下降到23個線程會發生什麼情況,剩下一個內核可用於其他工作? – caf 2010-05-14 01:30:26