Donau集群MPI作业提交指南:sbatch --mpi参数深度解析
【免费下载链接】donau-slurm-wrappersdonau-slurm-wrappers provide some scripts for Slurm Users to submit and manage jobs in Donau cluster environment项目地址: https://gitcode.com/openeuler/donau-slurm-wrappers
前往项目官网免费下载:https://ar.openeuler.org/ar/
Donau集群环境下,donau-slurm-wrappers工具为Slurm用户提供了便捷的作业提交与管理脚本。其中,sbatch命令的--mpi参数是提交MPI作业的核心配置,直接影响作业的调度效率和资源分配。本文将从零开始,详细解析--mpi参数的使用方法、支持的MPI类型及实战案例,帮助新手快速掌握Donau集群MPI作业提交技巧。
📌 为什么需要--mpi参数?
在Donau集群中提交MPI作业时,系统需要明确MPI实现类型以正确配置通信环境。当脚本中包含mpirun命令时,必须通过--mpi参数指定MPI类型,否则会触发如下错误:
sbatch: error: Need to add sbatch options “--mpi" to specify mpi type此外,mpirun命令前必须添加环境变量$CCS_MPI_OPTIONS,格式示例:
mpirun $CCS_MPI_OPTIONS <user_command>📋 支持的MPI类型全解析
--mpi参数支持4种主流MPI实现,通过源码cmd/sbatch第637行的验证逻辑可知,合法值包括:
| MPI类型 | 适用场景 | 典型应用 |
|---|---|---|
hmpi | 华为自研MPI实现 | 高性能计算场景 |
openmpi | 开源MPI标准实现 | 跨平台兼容性需求 |
intelmpi | Intel平台优化版本 | 英特尔CPU架构集群 |
mpich | 基础MPI参考实现 | 学术研究与教学 |
⚠️ 注意:若指定非法类型,系统会提示:
illegal cosched job type format, supported: hmpi, openmpi, intelmpi, mpich
🚀 快速上手:基本使用语法
命令行直接指定
sbatch --mpi=openmpi your_script.sh脚本内通过#SBATCH指定
在批处理脚本开头添加:
#!/bin/bash #SBATCH --mpi=intelmpi #SBATCH --ntasks=4 # 任务数量 #SBATCH --nodes=2 # 节点数量(仅MPI作业支持) mpirun $CCS_MPI_OPTIONS ./your_mpi_program🔍 高级配置:与其他参数的搭配使用
1. 资源分配组合
MPI作业通常需要指定节点数、任务数和CPU核心数:
sbatch --mpi=hmpi \ --nodes=2 \ --ntasks-per-node=8 \ --cpus-per-task=4 \ --partition=high_perf \ mpi_job.sh2. 输出重定向与错误处理
sbatch --mpi=mpich \ --output=mpi_job_%J.out \ --error=mpi_job_%J.err \ --open-mode=append \ long_running_job.sh其中
%J会自动替换为作业ID,便于区分不同作业输出
📝 实战案例:完整MPI作业脚本
以下是一个提交OpenMPI作业的完整示例(保存为mpi_example.sh):
#!/bin/bash #SBATCH --job-name=mpi_demo #SBATCH --mpi=openmpi #SBATCH --nodes=2 #SBATCH --ntasks=16 #SBATCH --cpus-per-task=2 #SBATCH --time=01:30:00 #SBATCH --partition=compute #SBATCH --output=demo_%J.out # 加载MPI环境(根据集群配置调整) module load openmpi/4.1.5 # 执行MPI程序 mpirun $CCS_MPI_OPTIONS ./mpi_hello_world提交命令:
sbatch mpi_example.sh❓ 常见问题解决
Q1: 忘记添加$CCS_MPI_OPTIONS导致提交失败?
A1:错误提示为:Need to add mpi option $CCS_MPI_OPTIONS in front of the user_command,需修改脚本中mpirun行为:
# 错误 mpirun ./your_program # 正确 mpirun $CCS_MPI_OPTIONS ./your_programQ2: 如何查看集群支持的MPI版本?
A2:通过sinfo命令查看节点信息,或联系集群管理员获取环境模块列表:
module avail mpiQ3: 多节点MPI作业 stuck 在启动阶段?
A3:检查:
--nodes和--ntasks-per-node参数是否匹配- 网络配置是否正确(可通过
--nodelist指定已知可用节点) - MPI类型是否与集群预装版本一致
📚 扩展学习资源
- 官方脚本源码:cmd/sbatch
- Slurm参数完整说明:
sbatch --help - Donau集群用户手册:联系管理员获取
通过本文的讲解,您已经掌握了Donau集群中使用sbatch --mpi参数提交MPI作业的核心知识。合理配置MPI类型和资源参数,能显著提升并行计算效率。如果在使用过程中遇到问题,建议先检查参数组合是否符合cmd/sbatch中的验证规则,或参考错误提示进行调试。
【免费下载链接】donau-slurm-wrappersdonau-slurm-wrappers provide some scripts for Slurm Users to submit and manage jobs in Donau cluster environment项目地址: https://gitcode.com/openeuler/donau-slurm-wrappers
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考