當I型:如何使用Open MPI將一個大型作業分配到具有12個內核的單個Mac Pro上?
mpiexec -n 12 ./Main
我得到的消息:使用具有1線/節點12個節點
,共計12個處理
我想我的整個的將一組內核識別爲1節點並運行其中的所有12個線程,而不是將12個獨立作業發送到12個內核中的每一個。
當I型:如何使用Open MPI將一個大型作業分配到具有12個內核的單個Mac Pro上?
mpiexec -n 12 ./Main
我得到的消息:使用具有1線/節點12個節點
,共計12個處理
我想我的整個的將一組內核識別爲1節點並運行其中的所有12個線程,而不是將12個獨立作業發送到12個內核中的每一個。
我認爲這個消息是非常具有誤導性的,你感到困惑。 MPI
代表消息傳遞接口,並涉及MPI任務(例如進程)。 如果你
mpiexec -n 12 ./Main
你問MPI創建由12項MPI任務,將共同努力,一個作業。 MPI不創建線程。 所以,如果你想要一個包含12個線程的進程,你應該考慮其他範例,比如OpenMP。 請注意,您可以擁有混合MPI + OpenMP代碼,因此,如果您有2個Mac Pro,則一個作業可能由2個MPI任務組成,每個任務包含12個OpenMP線程。
消息應該是 using 12 MPI tasks with 1 thread/task, for a total of 12 threads
這樣說,因爲消息提線程,您的應用程序可能已經MPI + OpenMP的。在這種情況下,如果你想要1個MPI任務和12個OpenMP線程,你甚至不需要mpiexec
(又稱單例模式),你應該可以簡單地使用
OMP_NUM_THREADS=12 ./Main