opendatahub-io/distributed-workloads/add-benchmark
Claude Code and agent skill by opendatahub-io/distributed-workloads
- community
Checking that the SKILL.md file is still in the repository.
Install
npx vskill@latest install opendatahub-io/distributed-workloads/add-benchmarkSKILL.md
Add Benchmark
Guide for adding a new benchmark to benchmarks/ in the distributed-workloads repo.
Directory layout
Each benchmark lives in its own subdirectory under benchmarks/:
See benchmarks/osu-benchmarks/ and benchmarks/kftv2-mpi-ddp-sft/ as reference implementations.
Dockerfile conventions
Follow the multi-stage build pattern used in benchmarks/osu-benchmarks/Dockerfile:
- Stage 1 (builder) - compile dependencies from source (e.g., OpenMPI, benchmark binaries)
- Stage 2 (runtime) - copy built artifacts, configure SSH for MPI, set up the runtime environment
Key requirements:
- Base image from
quay.io/opendatahub/orquay.io/modh/ USER 0only during build stages; final image must useUSER 1001- OpenShift GID 0 pattern:
chgrp -R 0 <dir> && chmod -R g=u <dir> - Allow random UID:
chmod g=u /etc/passwd - SSH authentication via Training Operator's
sshAuthMountPath-- keys are auto-injected at the path specified in the ClusterTrainingRuntime, not baked into the image. Workers generate host keys at startup. - For CUDA variants, create a separate
Dockerfile.cudaextending the base
ClusterTrainingRuntime
Define a ClusterTrainingRuntime resource with MPI configuration. Key fields:
- Launcher: runs the benchmark command (mpirun/mpiexec)
- Workers: run sshd and wait for MPI connections
- Both need the SSH setup commands in their entrypoints
See benchmarks/osu-benchmarks/mpi-runtime-cpu.yaml for a complete example.
TrainJob
Submit benchmarks using a TrainJob with generateName (not fixed name):
Use trainer.env for benchmark parameters - the controller injects them into all pod containers.
See benchmarks/kftv2-mpi-ddp-sft/trainjob.yaml for a complete example.
Makefile targets
Add build/push targets to the root Makefile following the existing pattern:
Registry: quay.io/modh/distributed-workloads-benchmark Tag format: trainer-mpi-<name>-<version>
CI workflow
Create .github/workflows/build-and-push-<name>-benchmark.yml matching the structure in build-and-push-osu-benchmark.yml:
- Trigger on push/PR when files under
benchmarks/<name>/change - Build on all branches, push only on
main - Use
docker/build-push-actionwith appropriate Dockerfile path
README
Every benchmark must include a README.md with these sections (see benchmarks/kftv2-mpi-ddp-sft/README.md):
| Section | Content | |
|---|---|---|
| Title + summary | One-line description of what the benchmark measures | |
| What this benchmark does | Table with algorithm, model, dataset, backend, runtime, image | |
| Files | Table mapping each file to its purpose | |
| Quick start | Numbered steps: deploy runtime, create namespace/ConfigMap, submit TrainJob, monitor | |
| Scaling | Table showing node/GPU configurations | |
| Benchmark parameters | Tables for training and infrastructure parameters with defaults and impact | |
| Expected output | Example benchmark summary output | |
| Known issues | Documented limitations and workarounds | |
| Cleanup | Commands to remove all created resources |
Checklist
- [ ] Dockerfile builds successfully:
make build-<name>-benchmark-image - [ ] ClusterTrainingRuntime applies:
oc apply -f benchmarks/<name>/mpi-runtime.yaml - [ ] TrainJob submits and runs:
oc create -f benchmarks/<name>/trainjob.yaml - [ ] README has all required sections
- [ ] Makefile targets added for build and push
- [ ] CI workflow triggers on path changes to
benchmarks/<name>/
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingai/skills/add-benchmark/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/opendatahub-io/distributed-workloads/add-benchmark)