Intel MPI(Intel® MPI Library)提供了丰富的环境变量,用于控制运行时行为、性能调优、调试、资源分配等。以下是一些常用和重要的 Intel MPI 环境变量分类说明(适用于 Intel MPI 2021 及较新版本,如 oneAPI 版本):


1. 基本控制

  • I_MPI_ROOT
    指定 Intel MPI 安装根目录。通常在 module 加载后自动设置。

  • I_MPI_HYDRA_BOOTSTRAP
    指定启动器(如 sshslurmlsfpbs 等)。

  • I_MPI_HYDRA_HOST_FILE
    指定主机文件路径(等效于 mpirun -hostfile)。

  • I_MPI_HYDra_rmk
    指定资源管理器(如 slurmpbs)。


2. 进程与线程控制

  • I_MPI_PIN
    控制进程是否绑定到 CPU(默认 enable)。可设为 disable 避免绑定。

  • I_MPI_PIN_DOMAIN
    设置进程绑定的 CPU 域(如 coresocketnumacompactscatter 等)。

  • I_MPI_PIN_PROCESSOR_LIST
    手动指定进程绑定到的 CPU 列表(如 0-3,8-11)。

  • I_MPI_DEBUG
    启用调试输出(如 I_MPI_DEBUG=5 输出详细日志)。

  • I_MPI_JOB_RESPECT_PROCESS_PLACEMENT
    是否尊重作业调度器的进程放置(SLURM 等)。


3. 网络与通信

  • I_MPI_FABRICS
    指定通信结构(fabric),如:

    • shm:ofi(共享内存 + libfabric,用于现代 Intel MPI)
    • tcp(基于 TCP/IP)
    • shm:dapl(旧版,已弃用)
    • 例如:export I_MPI_FABRICS=shm:ofi
  • I_MPI_OFI_PROVIDER
    指定 OFI provider(如 verbs, tcp, psm2, mlx 等)。

  • I_MPI_TCP_INTERFACE
    指定 TCP 通信使用的网络接口(如 ib0, eth0)。

  • I_MPI_HYDRA_IFACE
    指定 mpirun 启动进程时使用的网络接口。


4. 性能调优

  • I_MPI_ADJUST_* 系列变量
    用于调整特定集体通信算法。例如:

    • I_MPI_ADJUST_ALLREDUCE=3 强制使用特定 Allreduce 算法。
    • 查阅 Intel MPI 文档获取算法编号。
  • I_MPI_SHM_LMT
    控制共享内存通信的大消息传输机制(如 shm, dvs, none)。

  • I_MPI_USE_DYNAMIC_LOGGING
    启用动态日志(用于性能分析)。


5. 兼容性与模式切换

  • I_MPI_COMPATIBILITY
    启用兼容模式(如与 MPICH 兼容)。

  • I_MPI_JOB_STARTUP_TIMEOUT
    设置启动超时时间(秒)。

  • I_MPI_HYDRA_GLOBAL_ALLREDUCE
    控制是否使用全局 Allreduce 优化。


6. 调试与日志

  • I_MPI_DEBUG
    调试级别(0-1000+),值越高输出越详细。例如:

    export I_MPI_DEBUG=100
    mpirun -n 4 ./a.out
    
  • I_MPI_HYDRA_BOOTSTRAP_SSH_ARGS
    传递额外参数给 SSH(如 -o StrictHostKeyChecking=no)。


7. 与 SLURM 集成

若在 SLURM 环境下运行:

export I_MPI_HYDRA_BOOTSTRAP=slurm
export I_MPI_HYDRA_RMK=slurm

通常 Intel MPI 能自动检测 SLURM,但显式设置更可靠。


示例:典型高性能运行配置

export I_MPI_FABRICS=shm:ofi
export I_MPI_OFI_PROVIDER=verbs
export I_MPI_PIN=enable
export I_MPI_PIN_DOMAIN=numa
export I_MPI_DEBUG=0  # 关闭调试输出以提升性能
mpirun -n 64 ./my_mpi_app

参考文档

  • Intel® MPI Library Developer Reference(官方在线文档)
  • man mpirun
  • mpiexec --help

更多推荐