SuperAPI AI 工具集

slurm-job-script-generator

通用与其它

查看项目

更新于 10-15 22:12

技能介绍

用途:为仿真任务生成正确、可直接复制粘贴的 SLURM .sbatch 作业脚本,并暴露常见配置错误(墙钟时间格式错误、内存指令冲突、超订提示等)。

主要能力:根据作业名、墙钟时间、分区、账户、节点数、MPI 任务数、每任务 CPU 数(OpenMP 线程)、内存、GPU、工作目录、模块和运行命令等输入生成脚本;输出 results.script、results.directives、results.derived、results.warnings、results.run_line。derived 报告 ntasks、ntasks_per_node、cpus_total_requested,以及适用时的 cores_per_node、cpus_per_node_requested、total_gpus、ranks_per_gpu。warnings 可包含 CPU 超订、任务与 GPU 比例非整数、双重启动器警告。

使用方式:需 Python 3.10+,仅标准库,可在 Linux、macOS、Windows 上生成脚本。命令行示例:python3 skills/hpc-deployment/slurm-job-script-generator/scripts/slurm_script_generator.py --job-name phasefield --time 00:10:00 --partition compute --nodes 1 --ntasks-per-node 8 --cpus-per-task 2 --mem 16G --module gcc/12 --module openmpi/4.1 -- ./simulate --config config.json。可用 --out 写入文件,--json 输出结构化 JSON。运行命令放在 -- 之后。

适用场景:MPI 或 MPI+OpenMP 混合并行仿真作业;需要按节点或按 CPU 申请内存;需要 GPU 布局与 ranks_per_gpu 检查;需要避免 srun/mpirun 双重包装。

限制:不查询集群硬件或站点策略,只验证内部一致性;SLURM 安装差异大,GPU 指令、QoS 规则、分区需按站点调整。内存 --mem 与 --mem-per-cpu 互斥。若运行命令已以 srun、mpirun、mpiexec 等开头,应传 --launcher none,否则会双重包装。生成脚本不执行,仅生成纯文本 shell 脚本。