为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了。

你可能感兴趣的:(并行,MPI,PThread,多线程,解决方案)