跳到正文
TAIP

产品 / 面向 AI 开发者

Slurm on TAIP

正式可用

你的 Slurm 脚本,原样不动——跑在 Kubernetes 上,一套登录、一个 home、一份配额。

Slurm on TAIP 在你的 Kubernetes 集群上运行的是真正的多租户 Slurm,而非模拟——基于 SchedMD 官方上游的 Slinky slurm-operator。真实的 slurmctld / slurmd / slurmdbd / slurmrestd 负责调度作业,因此你依赖的行为(MPI、计费语义、分区、QOS、数组作业)就是 Slurm 本来的行为。它与 TAIP 的其余部分融为一体:SSH 登录用平台身份认证(经 SSSD 接入平台 LDAP 目录),首次登录即在共享集群存储上创建你的 /home;一个小巧的、带 leader 选举的控制器(account-sync)把每位用户在 ConsoleX 的工作区配额,对账成 Slurm 账户与 GrpTRES 上限——严格强制执行。GPU 是一等资源,配有硬性 cgroup 隔离;Open OnDemand Web 门户还提供基于浏览器的文件、作业、Shell 与 JupyterLab,让不想碰 SSH 的用户也能用。Slurm 25.11 采用 auth/slurm,无需运维 MUNGE 守护进程;上游镜像原样镜像,绝不 fork。

规格

状态
v0.4.4 — 已在 Kubernetes 上投产
Slurm
真正的 Slurm 25.11 · Slinky slurm-operator 1.1.1 · auth/slurm(无 MUNGE)
接入方式
SSH(LDAP/SSSD)· JWT slurmrestd · Open OnDemand Web 门户
身份
平台 LDAP 目录 · POSIX uid/gid · 首次登录 pam_mkhomedir
存储
共享集群存储——/home + /scratch,与 TAIP 其余部分同一份文件
多租户
ConsoleX 配额 → Slurm 账户 + GrpTRES(CPU/内存/GPU),严格强制
GPU
gres/gpu + gpu 分区 · 硬性 cgroup ConstrainDevices 隔离

用实证说话

一段代码看明白。

没有私有 SDK,无需改写—— Slurm on TAIP 在现有工具所在之处完成对接。

你已有的脚本,一字节都不用改
$ ssh you@taip-login            # 你的平台密码——与各处一致
$ ls ~                          # /home 已挂载在集群存储上
data/  train.slurm
$ sbatch train.slurm            # 原样不动——0 行改动
Submitted batch job 4127
$ squeue --me                   # 跑在真实 GPU 节点上
JOBID  PARTITION  NAME   ST  TIME  NODES
 4127        gpu  train    R  0:08      1

真正的 Slurm 25.11——sbatch / srun / salloc / sacct、分区、QOS、数组作业,行为与 Slurm 本来一致。它运行在 Kubernetes 平台之内,而不是与之并列的另一个世界里。

核心能力

Slurm on TAIP 为您带来什么

01

你的脚本一行不改即可运行

真实的 slurmctld / slurmd / slurmdbd / slurmrestd(上游 Slurm 25.11)负责调度——不是披着 Slurm 外衣的 Kubernetes 调度器。sbatch、srun、salloc、sacct、分区、QOS 与数组作业,行为与 Slurm 本来完全一致。零行改动。

02

统一身份,你早已在册

用现有平台凭据 SSH 登录——登录节点运行 SSSD,接入平台 LDAP 目录。POSIX uid/gid 来自平台目录,pam_mkhomedir 在首次登录时创建 home。没有独立的 Slurm 用户库,也无需第二个密码。

03

统一数据平面

/home/<user> 与共享的 /scratch 就在平台其余部分所用的同一份集群存储上。Slurm 作业写下的文件,正是你 notebook 读到的文件——无需拷入拷出,没有数据孤岛。

04

一份配额,自动对账

account-sync 是一个带 leader 选举的小型控制器,它读取每位用户在 ConsoleX 的工作区配额,对账成 Slurm 账户、关联与 GrpTRES 上限(CPU / 内存 / gres/gpu)。严格强制——超限作业被拒绝,而非尽力而为地限流。

05

GPU:既被调度,也被隔离

请求 GPU 分区与显卡(-p gpu --gres=gpu:1),Slurm 即为你调度。硬性 cgroup ConstrainDevices 隔离意味着作业连未分配给它的 GPU 都打不开——GPU 容量是受治理、被调度的资源,而非随意争抢。

06

Web 门户——无需 SSH

Open OnDemand 门户提供基于浏览器的文件、作业与 Shell,外加一个 JupyterLab 交互应用:以 Slurm 作业的形式、在你自己的 conda/venv 中启动,可选 GPU。基于平台身份的 OIDC 单点登录。

07

通过 REST 自动化

除 SSH 外,还有一个 JWT 认证的 slurmrestd(含 /slurmdb 计费端点),让你从 CI、流水线或自有工具提交与跟踪作业。

08

紧跟上游,绝不 fork

基于 SchedMD 官方支持的 Slinky operator;官方 slurmctld / slurmd / slurmrestd 镜像原样镜像,只有 login 镜像在上游之上叠加 SSSD + 集群存储。你得到的是 SchedMD 的真实发布,且更新及时——而不是滞后的分叉。Kubernetes 原生生命周期:Helm 安装、operator 对账、以 Secret 管理密钥。

工作原理

从平台登录到运行作业,无需迁移。

  1. 步骤 01

    用平台身份登录

    用你已有的凭据 SSH 登录(或打开 Web 门户)。SSSD 接入平台 LDAP 目录完成认证;首次登录即在共享集群存储上创建你的 /home。

  2. 步骤 02

    提交你早已写好的脚本

    sbatch train.slurm——一字节不改、无需重写。真正的 Slurm 25.11 把它调度到专用节点池上,分区、QOS 与数组作业一如既往地工作。

  3. 步骤 03

    获取 GPU,并守在配额内

    请求 gpu 分区与显卡,Slurm 即调度并硬性隔离。你在 ConsoleX 的工作区配额就是你的 GrpTRES 上限,自动对账、严格强制。

  4. 步骤 04

    用你习惯的方式跟踪

    用 squeue/sacct、Open OnDemand 门户,或 JWT slurmrestd API 跟踪作业——全部由同一份共享计费数据库支撑。

适用团队

为这些团队而建

  • 积累了多年 Slurm 脚本与肌肉记忆的科研与 ML 团队
  • 正在标准化到 Kubernetes、却仍需服务 HPC 用户的平台负责人
  • 希望用一个受治理的平台替换独立裸机 Slurm 集群的组织
  • 想要批处理调度与配额、又不愿再维护第二套身份与存储平面的团队