Ubuntu24.04下mpirun未并行运行:MPI程序串行执行问题求助
问题排查与解决步骤
以下是针对你的MPI程序无法并行运行问题的具体排查和解决方法:
1. 确认编译与运行使用同一MPI实现
最常见的原因是编译时使用的MPI编译器与运行时的MPI启动器不属于同一实现(比如混用MPICH和OpenMPI)。执行以下命令验证:
# 查看mpif90路径及版本 which mpif90 mpif90 --version # 查看mpirun路径及版本 which mpirun mpirun --version
如果两者输出的MPI实现不一致(比如一个是MPICH,一个是OpenMPI),请使用对应实现的完整路径执行命令,例如:
# 假设MPICH的mpirun在/usr/bin下 /usr/bin/mpirun -np 2 ./test
2. 修改代码使用MPI模块并添加Finalize
原代码使用include 'mpif.h'可能存在兼容性问题,建议改用Fortran MPI模块,并补充MPI_FINALIZE调用:
PROGRAM hello_world_mpi use mpi ! 替换include为模块引用 integer process_Rank, size_Of_Cluster, ierror call MPI_INIT(ierror) call MPI_COMM_SIZE(MPI_COMM_WORLD, size_Of_Cluster, ierror) call MPI_COMM_RANK(MPI_COMM_WORLD, process_Rank, ierror) print *, 'Hello World from process: ', process_Rank, ' of ', size_Of_Cluster call MPI_FINALIZE(ierror) ! 添加MPI终止调用 end program hello_world_mpi
重新编译并运行:
mpif90 -o test test.f90 mpirun -np 2 ./test
3. 验证编译时是否正确链接MPI库
使用 verbose 模式查看编译过程,确认MPI库被正确链接:
mpif90 -v -o test test.f90
输出中应包含类似-lmpich或-lmpi的链接参数,若未出现则说明MPI编译器包装器存在问题。
4. 重新安装MPICH
若以上步骤无效,尝试重装MPICH以修复可能的损坏:
sudo apt remove --purge mpich libmpich-dev sudo apt install mpich libmpich-dev
重装后重新编译运行程序。
内容的提问来源于stack exchange,提问作者Fabio
相关产品推荐
相关产品推荐

