用途:把集群故障症状转化为资源布局诊断、环境检查清单和安全重试计划,面向材料模拟的 HPC 运行时与调度器排障。
主要能力:脚本 scripts/hpc_runtime_doctor.py 输出 resource_layout(含 tasks_per_node、total_cpus、total gpus、gpus_per_node)、diagnoses、environment_checks、retry_plan、scheduler_notes 与 warnings(如每 GPU 进程数超订、OpenMP/线程不匹配、任务分布不均)。默认非 JSON 模式还会打印资源布局摘要、警告、环境检查与重试计划。
使用方式:需 Python 3.10+,无外部依赖,支持 Linux、macOS、Windows。需收集调度器(SLURM/PBS/LSF/local)、节点/任务/线程、GPU 数、症状、并行模式、walltime、是否使用 scratch。--gpus 为整作业 GPU 总数;已知每节点分配时用 --gpus-per-node(SLURM --gres=gpu:N 语义),其总数为 gpus_per_node * nodes 并覆盖 --gpus。示例:python3 skills/hpc-deployment/hpc-runtime-doctor/scripts/hpc_runtime_doctor.py --scheduler slurm --nodes 2 --tasks 128 --cpus-per-task 2 --gpus 4 --symptoms oom,slow-gpu --uses-mpi --uses-openmp --uses-gpu --json。
适用场景:提交作业后出现 oom、killed、slow-gpu 等调度与资源类症状时,先核对资源布局与模块/编译器/MPI/CUDA 一致性,再调试求解器行为;GPU 作业需确认可执行文件按请求的加速后端构建。
限制:不查询实时调度器,仅依据提交的布局与症状诊断;不读写文件,全部 I/O 为 CLI 参数输入与 stdout 输出;不启动调度器或外部进程。资源计数须为非负整数且上限 1,000,000,--nodes、--tasks、--cpus-per-task 至少为 1;症状最多 64 项、每项 64 字符;walltime 最多 32 字符;非法输入以退出码 2 结束。未知症状保留为自定义诊断供人工复核。每 GPU 进程数阈值为 16。
分类:部署与运维。