软件包链接到哪个 MPI 库?打开 MPI?

软件包链接到哪个 MPI 库?打开 MPI?

Ubuntu 存储库中的某些软件包提供了共享库的预编译二进制文件(*.so)。例如,软件包fftw2提供 FFTW 库(版本 2),包括 MPI 相关的库文件/usr/lib/libfftw_mpi.so.2/usr/lib/librfftw_mpi.so.2。这引发了一个问题:这些文件实际上链接到了众多 MPI 库中的哪一个。在我的系统 ( amd64) 上,ldd /usr/lib/libfftw_mpi.so.2显示

  linux-vdso.so.1 (0x00007ffd80ba4000)
  libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f2c3fe22000)
  libmpi.so.20 => /usr/lib/x86_64-linux-gnu/libmpi.so.20 (0x00007f2c3fb30000)
  […]

因此他们似乎指向 Open MPI,其文件libmpi.so在 Ubuntu 上被调用。

我发现mpi-default-dev元包,其描述为

此元包依赖于每个平台推荐的 MPI 实现的开发文件,目前所有平台上都存在 Open MPI,其他平台上存在 MPICH。此元包所依赖的包具有共享库 libmpi 和 libmpi++ 的替代链接,以及编译器 mpicc、mpic++/mpicxx/mpiCC、mpif77 和 mpi90 及其手册页的替代链接。

确实,在 上amd64,这会引入 Open MPI。但是,这是否意味着全部Ubuntu 存储库中使用 MPI 的库必须使用 Open MPI 进行编译/链接吗?

相关内容