# hpc-runtime-doctor

Разбирает, почему уже отправленная задача на кластере упала, зависла или идёт медленно: раскладка MPI/OpenMP/GPU, модули, walltime, restart.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · ★ 83
- Автор: HeshamFS
- Лицензия: Apache-2.0 · policy=mirror · лицензия открытая, файл — в исходнике
- Исходник: https://github.com/HeshamFS/materials-simulation-skills/tree/HEAD/skills/hpc-deployment/hpc-runtime-doctor/SKILL.md
- Обновлён: 2026-10-21
- HTML: https://affpapa.org/nevibecode/skills/hpc-runtime-doctor

## Что делает

Скилл превращает симптомы кластера в диагноз по раскладке ресурсов, чек-лист окружения и план безопасного перезапуска. Он не опрашивает живой планировщик — работает с той раскладкой и теми симптомами, что вы ему передали.

Внутри один скрипт `scripts/hpc_runtime_doctor.py` на Python 3.10+ без внешних зависимостей. На входе планировщик (SLURM, PBS, LSF, local), число узлов, задач и потоков, GPU, симптомы вроде `oom,killed,slow-gpu`, walltime и признак использования scratch. На выходе — блок `resource_layout`, `diagnoses`, `environment_checks`, `retry_plan`, `scheduler_notes` и `warnings`.

Важная деталь про GPU: `--gpus` — это общее число на всю задачу, а `--gpus-per-node` задаёт раскладку по узлам (семантика SLURM `--gres=gpu:N`) и перекрывает `--gpus`, тогда всего GPU = `gpus_per_node * nodes`. Проверка переподписки считает отношение всех рангов ко всем GPU, порог — 16 рангов на GPU, поэтому на многоузловой задаче перекос видно. Некорректные счётчики ресурсов останавливают скрипт с кодом выхода 2, а незнакомые симптомы сохраняются как `custom` для ручного разбора. Если задача убита или упёрлась в память, это категория планировщика, а не физики — не трогайте параметры модели, пока не посмотрите stdout и stderr.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add HeshamFS/materials-simulation-skills --skill hpc-runtime-doctor -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/hpc-runtime-doctor/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/hpc-runtime-doctor/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add HeshamFS/materials-simulation-skills --skill hpc-runtime-doctor -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/hpc-runtime-doctor/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add HeshamFS/materials-simulation-skills --skill hpc-runtime-doctor -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/hpc-runtime-doctor/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install HeshamFS/materials-simulation-skills hpc-runtime-doctor
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/hpc-runtime-doctor/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add HeshamFS/materials-simulation-skills --skill hpc-runtime-doctor -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/HeshamFS/materials-simulation-skills --path skills/hpc-deployment/hpc-runtime-doctor
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/hpc-runtime-doctor/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add HeshamFS/materials-simulation-skills --skill hpc-runtime-doctor -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/HeshamFS/materials-simulation-skills/tree/HEAD/skills/hpc-deployment/hpc-runtime-doctor/SKILL.md

## Когда брать
- понять, почему задача на кластере упала с oom или была убита по walltime
- найти перекос в раскладке рангов MPI по GPU и узлам
- проверить согласованность модулей, компилятора, MPI и сборки под ускоритель
- спланировать перезапуск с чекпоинтом, меняя по одной переменной за раз
- отличить сбой workflow с restart-файлами и очисткой scratch от ошибки решателя

## Примеры запросов агенту
- Разбери, почему задача упала: `--scheduler slurm --nodes 2 --tasks 128 --cpus-per-task 2 --gpus 4 --symptoms oom,slow-gpu --uses-mpi --uses-openmp --uses-gpu --json`
- Проверь раскладку GPU по узлам: `--gpus-per-node 1 --nodes 4 --tasks 32`
- Собери план перезапуска для задачи, которую убил планировщик, и проверь окружение

## Похожие
- [gke-batch-hpc](https://affpapa.org/nevibecode/skills/gke-batch-hpc.md) — скилл · 6390 установок
- [pacsomatic](https://affpapa.org/nevibecode/skills/pacsomatic.md) — скилл · 1400 установок
- [pod-doctor](https://affpapa.org/nevibecode/skills/pod-doctor.md) — скилл · 2600 установок
- [get-available-resources](https://affpapa.org/nevibecode/skills/get-available-resources.md) — скилл · 2000 установок
- [compose-doctor](https://affpapa.org/nevibecode/skills/compose-doctor.md) — скилл · 3500 установок
- [nemo-automodel-launcher-config](https://affpapa.org/nevibecode/skills/nemo-automodel-launcher-config.md) — скилл · 1900 установок

Из того же набора: [heshamfs/materials-simulation-skills](https://affpapa.org/nevibecode/by/heshamfs/materials-simulation-skills.md) — 8 карточек

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
