版本: Open MPI 3.0.1
編譯好可執行的C語言程序后,使用 mpirun -np 3 Test 命令,發現沒有正常運行,而是報錯:
There are not enough slots available in the system to satisfy the 3 slots
that were requested by the application:
/home/~/xxx
Either request fewer slots for your application, or make more slots available
for use.
在我之前運行的機器上開10個進程也沒問題啊,安裝步驟也一致,后來一想不對,如果CPU配置的不同,可能能支持的性能也不同。
果然發現機器1有24個processors,出問題的機器有 2 個processors, - - !!
采用“把好的玩成壞的”的方式,把機器一多次改變進程數運行,發現改到25就會報這個錯。
也就是說,Open MPI 會估算我們的CPU承載能力,用一定算法計算出進程的上限。
當然,也可以使用 --oversubscribe 參數去超出上限個數運行,不過參考文檔上說明了,不建議這樣做,會有未定義行為 - - !!
