如何在Ubuntu 22.04本地安装OpenMPI、MPICH等MPI变体且互不干扰?
在Ubuntu 22.04中多版本MPI管理的简便方案
针对Ubuntu 22.04下同时管理OpenMPI、MPICH等多版本MPI且互不干扰的需求,推荐以下几种比手动单独安装更简便的方案:
1. 用Environment Modules统一管理(最推荐)
这是专门用于多版本软件环境切换的工具,操作直观且能彻底隔离不同版本的环境变量:
- 首先安装工具:
sudo apt update && sudo apt install environment-modules - 重启终端或执行
source /etc/profile.d/modules.sh使模块生效 - 为每个MPI版本创建模块文件:
比如在/etc/modules.d/目录下新建openmpi-4.1.4文件,内容如下:
同理创建#%Module1.0 prepend-path PATH /opt/mpi/openmpi-4.1.4/bin prepend-path LD_LIBRARY_PATH /opt/mpi/openmpi-4.1.4/lib prepend-path MANPATH /opt/mpi/openmpi-4.1.4/share/manmpich-3.4.3文件,替换路径为对应MPICH的安装目录 - 切换版本:
# 加载OpenMPI 4.1.4 module load openmpi-4.1.4 # 加载MPICH 3.4.3 module load mpich-3.4.3 # 查看已加载模块 module list # 卸载当前模块 module unload openmpi-4.1.4
2. 用系统自带的update-alternatives切换(适合apt安装的版本)
如果你的MPI版本是通过Ubuntu官方源安装的,用这个工具无需额外安装软件:
- 先安装需要的MPI版本:
sudo apt install openmpi-bin mpich - 为
mpicc、mpicxx、mpiexec等核心工具配置替代项:# 添加OpenMPI的mpicc替代 sudo update-alternatives --install /usr/bin/mpicc mpicc /usr/bin/mpicc.openmpi 100 # 添加MPICH的mpicc替代 sudo update-alternatives --install /usr/bin/mpicc mpicc /usr/bin/mpicc.mpich 200 # 同理配置mpicxx、mpiexec等 sudo update-alternatives --install /usr/bin/mpicxx mpicxx /usr/bin/mpicxx.openmpi 100 sudo update-alternatives --install /usr/bin/mpicxx mpicxx /usr/bin/mpicxx.mpich 200 sudo update-alternatives --install /usr/bin/mpiexec mpiexec /usr/bin/mpiexec.openmpi 100 sudo update-alternatives --install /usr/bin/mpiexec mpiexec /usr/bin/mpiexec.mpich 200 - 切换版本时执行:
然后按提示选择对应版本的序号即可sudo update-alternatives --config mpicc sudo update-alternatives --config mpicxx sudo update-alternatives --config mpiexec
3. 手动编译+别名/脚本快速切换(适合自定义编译版本)
如果你需要编译特定版本的MPI,可安装到独立目录后用别名或脚本简化切换:
- 比如将OpenMPI 4.1.4安装到
/opt/mpi/openmpi-4.1.4,MPICH 3.4.3安装到/opt/mpi/mpich-3.4.3 - 在
~/.bashrc中添加别名:alias use-openmpi='export PATH=/opt/mpi/openmpi-4.1.4/bin:$PATH; export LD_LIBRARY_PATH=/opt/mpi/openmpi-4.1.4/lib:$LD_LIBRARY_PATH' alias use-mpich='export PATH=/opt/mpi/mpich-3.4.3/bin:$PATH; export LD_LIBRARY_PATH=/opt/mpi/mpich-3.4.3/lib:$LD_LIBRARY_PATH' - 执行
source ~/.bashrc生效后,切换版本只需输入:use-openmpi # 验证版本 mpicc --version use-mpich mpicc --version
内容的提问来源于stack exchange,提问作者Raphael Santos
相关产品推荐
相关产品推荐

