2011-08-14 36 views
0

如何確保一個多線程的C++程序是由ALL內核的多核 服務器上運行做計算並行物理(不是邏輯上)。如何確保多線程C++程序由多核服務器上的所有核心運行?

我有一個多核心服務器,它有24個CPU,每個CPU有6個核心。

它的Intel Xeon X5650 2.67GHz CPU核心:6(支撐件6級的線程) CPU兆赫:1596.000

完全,我有24×6 = 144芯。

我設計了一個帶有boost/thread的多線程C++程序。

如何確保我的程序由所有144個內核運行?

任何幫助真的很感激。

謝謝

+2

那麼,至少需要144個線程同時運行,但是您通常希望將內核的兩倍作爲線程來真正使用它們。 –

+0

有沒有證據表明這可能不會發生? –

回答

2

應該沒有什麼特別的你需要做的。操作系統的調度程序應該默認安排所有可用的核心。如果您有144個可立即運行的線程,並且系統沒有其他任何操作,它應該在每個可用的物理或虛擬核心上安排一個線程。