1. 程式人生 > >為MPI新增PThread多執行緒支援

為MPI新增PThread多執行緒支援

如果要在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了。