2017-09-23 98 views

回答

0

我認爲這個消息是非常具有誤導性的,你感到困惑。 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 
相關問題