2011-08-14 32 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个可立即运行的线程,并且系统没有其他任何操作,它应该在每个可用的物理或虚拟核心上安排一个线程。