Intel MPI(Intel® MPI Library)的环境变量
文章目录
Intel MPI(Intel® MPI Library)提供了丰富的环境变量,用于控制运行时行为、性能调优、调试、资源分配等。以下是一些常用和重要的 Intel MPI 环境变量分类说明(适用于 Intel MPI 2021 及较新版本,如 oneAPI 版本):
1. 基本控制
-
I_MPI_ROOT
指定 Intel MPI 安装根目录。通常在 module 加载后自动设置。 -
I_MPI_HYDRA_BOOTSTRAP
指定启动器(如ssh、slurm、lsf、pbs等)。 -
I_MPI_HYDRA_HOST_FILE
指定主机文件路径(等效于mpirun -hostfile)。 -
I_MPI_HYDra_rmk
指定资源管理器(如slurm、pbs)。
2. 进程与线程控制
-
I_MPI_PIN
控制进程是否绑定到 CPU(默认enable)。可设为disable避免绑定。 -
I_MPI_PIN_DOMAIN
设置进程绑定的 CPU 域(如core、socket、numa、compact、scatter等)。 -
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 mpirunmpiexec --help
更多推荐

所有评论(0)