如何在SLURM系统中传递IntelMPI的-print-rank-map参数至srun或批处理脚本
如何在SLURM中传递IntelMPI的-print-rank-map参数
直接通过srun命令传递
用srun启动MPI程序时,可将IntelMPI的-print-rank-map参数直接附加在可执行文件后,srun会自动把该参数传递给IntelMPI进程:
srun --mpi=pmi2 ./your_mpi_executable -print-rank-map
注:--mpi=pmi2需根据集群配置调整,部分集群可能使用pmix作为MPI通信协议。
在sbatch批处理脚本中传递
方法1:脚本内直接指定参数
在sbatch脚本里,把-print-rank-map直接加在srun调用的MPI程序后即可:
#!/bin/bash #SBATCH --nodes=2 #SBATCH --ntasks-per-node=4 srun --mpi=pmi2 ./your_mpi_application -print-rank-map
方法2:通过环境变量传入
IntelMPI支持用I_MPI_ARGS环境变量预设运行参数,在sbatch脚本中先导出该变量,再启动MPI程序:
#!/bin/bash #SBATCH --nodes=2 #SBATCH --ntasks-per-node=4 export I_MPI_ARGS="-print-rank-map" srun --mpi=pmi2 ./your_mpi_application
注意事项
- 确保集群中SLURM与IntelMPI集成配置正确,若未指定
--mpi参数,部分集群会自动适配,但显式指定可避免兼容性问题。 - 若需传递多个IntelMPI参数,可在
I_MPI_ARGS中用空格分隔,比如export I_MPI_ARGS="-print-rank-map -debug 1"。
内容的提问来源于stack exchange,提问作者intergallactic
相关产品推荐
相关产品推荐

