gpt4 book ai didi

openmpi - 我是否使用 OpenMPI 或 MPICH 进行编译?

转载 作者:行者123 更新时间:2023-12-02 04:48:26 25 4
gpt4 key购买 nike

我的 Linux 机器上有一个可执行文件,我知道它是使用 OpenMPIMPICH 库编译的。

问题:如何确定是哪一个?

最佳答案

以下诊断过程假设 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"

关于openmpi - 我是否使用 OpenMPI 或 MPICH 进行编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15619218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com