运行 valgrind 以检测 mpi 应用程序中的错误时,我收到以下错误:
libmpi.so.0: cannot open shared object file: No such file or directory
我发现了以下内容: Valgrind 文档(第 4.9.1 节)指出“假定要包装的 MPI 函数位于与 soname 匹配 libmpi.so* 的 ELF 共享对象中。这至少对于 Open 来说是正确的MPI 和 Quadrics MPI,可以根据需要轻松更改。”
因此,由于我使用的是 mpich2,它实际上应该使用 libmpich.so.1.0。
这可以在 libmpiwrap.c 中看到:
#include "mpi.h"
/* Where are API symbols?
Open MPI lib/libmpi.so, soname = libmpi.so.0
Quadrics MPI lib/libmpi.so, soname = libmpi.so.0
MPICH libmpich.so.1.0, soname = libmpich.so.1.0
A suitable soname to match with is therefore "libmpi*.so*".
我的问题是:我在哪里以及如何配置它?