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

运行地球系统模型(CESM)时遭遇MPI执行错误求助

CESM本地运行I1850CLM50_004案例的MPI递归调用错误排查

这个错误并非案例只能在HPC集群运行,本地Ubuntu虚拟机完全可以运行该案例,问题大概率出在MPI配置或案例提交脚本的设置上,以下是具体排查和解决方向:

一、排查MPI库本身的有效性

  • 确认本地MPI版本:执行mpiexec --version,查看输出的MPI类型(OpenMPI/MPICH等)和版本号。部分旧版OpenMPI对嵌套MPI调用的支持存在问题,容易触发"mpiexec does not support recursive calls"错误。
  • 验证MPI基础功能:编译运行一个简单的MPI Hello World程序,确认MPI库能正常工作:
    # 编写hello.c示例代码
    # #include <mpi.h>
    # #include <stdio.h>
    # int main(int argc, char** argv) {
    #     MPI_Init(NULL, NULL);
    #     int rank;
    #     MPI_Comm_rank(MPI_COMM_WORLD, &rank);
    #     printf("Hello world from rank %d\n", rank);
    #     MPI_Finalize();
    #     return 0;
    # }
    mpicc -o hello hello.c
    mpiexec -n 4 ./hello
    
    如果该测试能正常输出各进程信息,说明MPI库安装本身无核心问题,问题出在CESM案例的配置逻辑上。

二、调整CESM案例的配置与提交逻辑

  • 匹配MPI库配置:打开案例目录下的env_run.xml,确认MPILIB参数与本地安装的MPI类型一致(例如本地装的是OpenMPI,就设置为<entry id="MPILIB" value="openmpi"/>);同时检查NODES、NTASKS参数,不要超过虚拟机的CPU核心数。
  • 避免递归MPI调用:CESM的case.submit脚本默认适配集群调度器(如Slurm),本地运行时可能会嵌套调用mpiexec。可以直接修改case.submit,跳过调度器逻辑,直接用mpiexec ./cesm.exe启动程序;或者调整env_batch.xml中的BATCH_SYSTEM参数为none,让脚本以本地模式运行。
  • 解决PMIX存储错误:针对dstore_base.c第1709行的PMIX错误,可尝试设置环境变量绕过该问题:
    export PMIX_MCA_dstore=hash
    export PMIX_MCA_gds=hash
    
    设置后重新执行./case.submit。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 21:28:20