2011-05-25 131 views
1

我想在一個4核心處理器上運行多線程程序,並且我希望每個線程運行在不同的內核上。我該如何要求操作系統在另一個內核上運行每個線程? - Linux操作系統

我該怎麼做?因爲現在我看到他們都在同一個核心上運行。

(我使用的是Linux操作系統,我的代碼是wrriten對角)

+0

操作系統應自動分配線程以獲得最佳性能。如果不止一個線程正在做大量的工作,那麼線程應該在所有可用的內核中進行調度,除非另有說明。你能確定線程在每個內核上的CPU佔用率有多少? – khabraken 2011-05-25 15:30:42

+0

你確定你的程序實際上有多個線程嗎?正如Specter所說,線程應該自動分配給不同的內核。 – Mokubai 2011-05-25 21:30:42

回答

4

進程調度使進程都具有affinity對特定的CPU。您已經將一堆東西加載到緩存中,您不妨繼續使用這個「熱門」緩存。

您可能正在獲取同一內核上的所有線程,因爲您已經在此處加載了該程序。

我的確發現了這個:pthread_setaffinity_np。這看起來很笨拙,但我希望它有一些用處。

+0

感謝您的答覆! – hilli 2011-05-26 18:48:38

相關問題