2
A
回答
5
以下诊断过程假定MPICH/MPICH2和Open MPI为 是您可能已链接的唯一可能的MPI实现。其他 (特别是商业)MPI实现确实存在,并可能有不同的库名称和/或库符号。
首先确定是否动态链接:
% ldd my_executable
linux-vdso.so.1 => (0x00007ffff972c000)
libm.so.6 => /lib/libm.so.6 (0x00007f1f3c6cd000)
librt.so.1 => /lib/librt.so.1 (0x00007f1f3c4c5000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00007f1f3c2a7000)
libc.so.6 => /lib/libc.so.6 (0x00007f1f3bf21000)
/lib64/ld-linux-x86-64.so.2 (0x00007f1f3c969000)
如果您在该列表中看到libmpich.so
,那么你已经动态链接到 MPICH(或MPICH2)。如果您看到libmpi.so
,那么您已与Open MPI链接。
如果两者都不存在,那么您可能只是静态链接。在这种情况下 我们需要检查二进制寻找区分符号:
% (nm my_executable | grep MPIR_Free_contextid >/dev/null) && echo "MPICH"
% (nm my_executable | grep ompi_comm_set_name >/dev/null) && echo "Open MPI"
1
开放MPI的应用程序反应MCA参数,即可以在环境变量进行传递。只是一些运行在单模式下的可执行文件(即没有0/mpiexec
)像sysinfo_base_verbose
设置为30:
$ OMPI_MCA_sysinfo_base_verbose=30 ./program
如果你得到这样的输出:
[hostname:pid] mca: base: components_open: Looking for sysinfo components
,那么这是不是稳健的指示更该可执行文件使用Open MPI。
相关问题
- 1. 使用OpenMPI或MPICH与Boost MPI一起使用Win和Linux机器
- 2. 如何使用MinGW使用MPI(的openmpi或MPICH2) - GNU gfortran编译
- 3. 编译并运行OpenMPI程序
- 4. MPI实现(OpenMPI,MPICH)如何处理安全/认证
- 5. 建议的基准测试程序来比较MPICH和的openmpi
- 6. MPICH和OpenMPI中的错误处理程序
- 7. 使用英特尔编译器套件编译OpenMPI应用程序
- 8. 如何使用xcode 4编译openmpi程序?
- 9. .ASP我需要编译吗?
- 10. 我可以使用x64编译过程中使用函数CreateProcess调用x32编译的过程吗?
- 11. 用cygwin/gfortran编译或用acml编译
- 12. 我是用x64 JDK编译的吗?
- 13. 我应该在Linux或Windows上交叉编译吗?
- 14. 你曾经坠毁过编译器吗?
- 15. 无法配置MPICH。所选的Fortran 90编译程序gfortran不与选定的Fortran 77编译器gfortran
- 16. 我的makefile显示编译错误吗?
- 17. 我必须编译成JavaScript吗?
- 18. 我必须依赖编译器NRVO吗?
- 19. 编译器编译也包含了吗?
- 20. nvprof与MPICH
- 21. 我可以使用C++编译器来编译c源代码吗?
- 22. 与MPICH一起使用pthreads
- 23. 用MSBuild编译一个csproj编译引用的项目吗?
- 24. HTML,编译或不编译...外部?
- 25. 编译或不编译.class文件
- 26. 使用mpirun的openMPI错误,我得到:
- 27. 我可以预编译我的ASP.NET MVC应用程序吗?
- 28. 调用由编译器或链接器处理的约定吗?
- 29. 可以使用mingw编译Windows Vista或7的代码吗?
- 30. 构建或编译