為MPI新增PThread多執行緒支援
阿新 • • 發佈:2019-01-27
如果要在PThread中呼叫MPI,就要為MPI新增PThread支援。如果當前編譯的MPI不支援PThread,那麼在呼叫
MPI_Init_thread(&argc,&argv,MPI_THREAD_MULTIPLE, &provided);
if(provided != MPI_THREAD_MULTIPLE)
{
printf("MPI do not Support Multiple thread\n");
exit(0);
}
時會打印出MPI do not Support Multiple thread,這說明Open MPI在編譯的時候沒有新增多執行緒的支援,需要重新編譯Open MPI,而且在配置的時候需要開啟“允許多執行緒”的開關,如果Open MPI選用的是1.6版本,那麼配置命令應該如下:
./configure --prefix=/opt/openmpi1.6 --enable-mpi-thread-multiple
不同的版本配置命令不同,可以通過./configure --help 檢視。
經過重新編譯之後就為MPI添加了PThread的支援,再呼叫上面的程式碼時便不會輸出MPI do not Support Multiple thread了。