c – 具有多个Pthread的MPI
我正在使用以下代码段来初始化多个线程的mpi库.但是我总是得到以下输出,说明此MPI实现不支持MPI_THREAD_MULTIPLE.
MPI_Init_thread(&argc,&argv,MPI_THREAD_MULTIPLE,&provided); if(provided != MPI_THREAD_MULTIPLE) { fprintf(stderr,"This MPI implementation does not support MPI_THREAD_MULTIPLE.n" } 在做 mpiexec --version and ompi_info 我得到这个输出:mpiexec(OpenRTE)1.4.3和Open MPI:1.4.3 我使用mpicc mpi_hello.c编译,其中c文件包含上面的代码部分.我的mpi库不支持多线程的任何想法? 谢谢 解决方法
您没有指定您正在使用的平台或分发或构建.您使用的库很可能没有配置为多线程使用.从源代码构建时,您需要使用以下内容构建它:
$./configure --enable-mpi-thread-multiple 您可以通过运行来测试二进制文件具有哪些功能: $ompi_info | grep -i thread Thread support: posix (mpi: yes,progress: no) 如果不支持,您可能需要build from source. 有关重要细节,请参阅OpenMPI documentation on
请注意,您报告的版本(1.4)也很旧;目前的稳定版本是v1.10. 如果你想使用多个线程,你可能想重新考虑你的设计;有几个线程框架(例如Threaded Building Blocks)比MPI更合适,MPI主要用于集群应用程序.一些替代品: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |