feat(runners): add the B300 DSXE cluster and retire the B300 NV launcher (#2826)
Registers the B300 DSXE Slurm cluster: a launcher, its 18 runner labels, and
its hardware facts. Removes launch_b300-nv.sh, whose fleet is decommissioned
and whose runner labels were already dropped from runners.yaml.
Both the multi-node and single-node paths now share one enroot import helper
instead of open-coding the import twice. The helper is defined above the
IS_MULTINODE branch so it is in scope for both, and it:
- serializes concurrent importers on a per-image flock, so only the first
caller pulls and the rest reuse the result rather than failing on an
existing -o target;
- verifies the squash file and re-imports it when it is missing or invalid;
- bounds the Slurm step with --time, so a lost step fails the job instead of
leaving the client waiting indefinitely;
- probes the shared path before allocating, so a warm cache costs no Slurm
allocation at all.
The import runs on a compute node because enroot builds the squashfs over an
overlay mount, which the shared filesystem cannot back.
Also repoints the workflow path filter, comments and docs that named the
removed launcher, and drops the SALLOC_EXCLUDE default, which listed nodes
belonging to the retired fleet.
configs/nvidia-master.yaml still pins 13 configs to cluster:b300-nv, so
full-sweep matrix generation stays broken exactly as it is on main today.
Resolving those entries is left to a separate change.
注册 B300 DSXE Slurm 集群:新增启动脚本、18 个 runner 标签及其硬件信息。
删除 launch_b300-nv.sh,该集群已下线,其 runner 标签此前已从 runners.yaml 中移除。
多节点与单节点路径现在共用同一个 enroot 导入函数,不再各自实现一遍。该函数定义在
IS_MULTINODE 分支之前,因此两条路径都能调用,并且:
- 使用按镜像的 flock 串行化并发导入,只有第一个调用方真正拉取镜像,其余调用方复用
结果,而不会因为 -o 目标已存在而失败;
- 校验 squash 文件,缺失或损坏时重新导入;
- 使用 --time 限制 Slurm step,step 丢失时任务直接失败,而不会让客户端无限等待;
- 在申请资源前先探测共享路径,因此缓存命中时完全不占用 Slurm 资源。
导入在计算节点上执行,因为 enroot 需要在 overlay 挂载之上构建 squashfs,而共享文件
系统无法支撑该挂载。
同时更新了引用已删除启动脚本的工作流路径过滤器、注释和文档,并移除 SALLOC_EXCLUDE
默认值,其中列出的节点属于已下线的集群。
configs/nvidia-master.yaml 中仍有 13 个配置指向 cluster:b300-nv,因此 full-sweep
矩阵生成与当前 main 分支一样仍然失败。这些条目留待单独的改动处理。
Co-authored-by: Alec Ibarra <93070681+adibarra@users.noreply.github.com> A
Ankur Singh committed
ee8f4576eabbcd2cbe57cbf84e926a3d7b98fe95
Parent: cf08a54
Committed by GitHub <noreply@github.com>
on 9/4/2026, 9:06:08 PM