You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Ubuntu 24.04.1后MPICH的MPI_Comm_size始终返回1的问题

MPICH在Ubuntu 24.04.1中运行时MPI_Comm_size始终返回1的修复方案

问题背景

升级至Ubuntu 24.04.1后,MPICH运行MPI程序出现异常:使用mpirun -np 4启动程序时,每个进程的MPI_Comm_size返回1,MPI_Comm_rank返回0。因FreeFem库仅兼容MPICH,无法切换至OpenMPI解决问题,重装MPICH后症状依旧。

复现代码

#include <mpi.h>
#include <iostream>

int main(int argc, char** argv) {
MPI_Init(&argc, &argv);

int world_size;
MPI_Comm_size(MPI_COMM_WORLD, &world_size);

int world_rank;
MPI_Comm_rank(MPI_COMM_WORLD, &world_rank);

std::cout << "Hello from processor " << world_rank;
std::cout << " of " << world_size << std::endl;

MPI_Finalize();
return 0;
}

编译与运行结果

编译命令:

mpic++ -o hello_world hello_world.cpp

运行命令及输出:

mpirun -np 4 ./hello_world
Hello from processor 0 of 1
Hello from processor 0 of 1
Hello from processor 0 of 1
Hello from processor 0 of 1

排查步骤

  1. 确认MPI工具链归属
    执行以下命令,确保使用的是MPICH的工具链,而非残留的OpenMPI或其他MPI实现:
    which mpirun
    mpichversion
    mpic++ --showme
    
  2. 检查程序链接库
    查看编译生成的程序是否正确链接MPICH库:
    ldd hello_world | grep libmpi
    
  3. 清理冲突环境变量
    检查~/.bashrc、~/.profile等配置文件,删除任何指向OpenMPI或旧版MPICH的PATH、LD_LIBRARY_PATH、MPI_HOME变量。

解决方案

1. 彻底清理MPI残留

# 卸载所有MPI相关包
sudo apt-get purge mpich libmpich-dev openmpi-bin openmpi-libs libopenmpi-dev -y
# 清理残留依赖和配置文件
sudo apt-get autoremove --purge -y
# 删除剩余的MPICH目录
sudo rm -rf /usr/lib/mpich /usr/include/mpich /usr/share/mpich

2. 重新安装MPICH

sudo apt-get update
sudo apt-get install mpich libmpich-dev -y

3. 验证修复效果

重启终端后,重新编译并运行测试程序:

mpic++ -o hello_world hello_world.cpp
mpirun -np 4 ./hello_world

预期输出类似:

Hello from processor 0 of 4
Hello from processor 1 of 4
Hello from processor 2 of 4
Hello from processor 3 of 4

4. 额外调试方案(若以上无效)

  • 启用MPICH verbose模式查看启动日志:
    mpirun -np 4 -verbose ./hello_world
    
  • 指定主机文件强制使用localhost:
    mpirun -np 4 -hostfile <(echo localhost) ./hello_world
    

内容的提问来源于stack exchange,提问作者Romain Gervalle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 23:51:19