跳到正文
TAIP

产品 / 面向 AI 开发者

Slurm on TAIP

正式版

在 Kubernetes 上运行现有 Slurm 脚本,共用平台账号、主目录和配额。

Slurm on TAIP 基于 SchedMD 的 Slinky slurm-operator,在 Kubernetes 集群上运行多租户 Slurm。作业由 slurmctld / slurmd / slurmdbd / slurmrestd 调度,保留 Slurm 的 MPI、计费、分区、QOS 和数组作业行为。SSH 登录经 SSSD 接入平台 LDAP 目录,首次登录时在共享存储上创建 /home。支持 Leader 选举的 account-sync 控制器将 ConsoleX 工作空间配额同步为 Slurm 账户和 GrpTRES 上限,并严格执行。GPU 通过 cgroup 隔离。Open OnDemand 门户提供浏览器内文件管理、作业管理、Shell、JupyterLab 和基于 VNC 的 Xfce 桌面。队列深度、节点状态和 account-sync 健康指标接入平台 Prometheus,配套提供仪表盘与告警。Slurm 25.11 使用 auth/slurm,无需维护 MUNGE;上游镜像直接同步使用,不另行维护分支。

产品规格

状态
v0.8.5 — 已在 Kubernetes 上投产
Slurm
原生 Slurm 25.11 · Slinky slurm-operator 1.1.1 · auth/slurm(无 MUNGE)
接入方式
SSH(LDAP/SSSD)· JWT slurmrestd · Open OnDemand — 文件、作业、Shell、JupyterLab、经 VNC 的 Xfce 桌面
身份认证
平台 LDAP 目录 · POSIX uid/gid · 首次登录时通过 pam_mkhomedir 创建主目录 · SSH 公钥在 ConsoleX 自助登记
监控
Slurm 队列与节点指标、account-sync 健康度 → 平台 Prometheus,附带仪表盘与告警
存储
共享 /home 与 /scratch,与其他 TAIP 应用访问同一份数据
多租户
ConsoleX 配额 → Slurm 账户 + GrpTRES(CPU/内存/GPU),严格执行
GPU
gres/gpu + gpu 分区 · 硬性 cgroup ConstrainDevices 隔离

使用示例

通过示例了解用法。

无需专用 SDK,也无需重写客户端。 Slurm on TAIP 可直接与现有工具对接。

沿用现有 Slurm 脚本
$ 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 和数组作业的使用方式,并纳入 Kubernetes 平台统一管理。

核心能力

Slurm on TAIP 的主要功能

01

沿用现有 Slurm 脚本

由上游 Slurm 25.11 的 slurmctld / slurmd / slurmdbd / slurmrestd 调度作业,保留 sbatch、srun、salloc、sacct、分区、QOS 和数组作业的原有行为,无需修改现有脚本。

02

使用现有平台账号登录

登录节点通过 SSSD 接入平台 LDAP 目录,用户可使用现有凭据 SSH 登录。公钥在 ConsoleX 登记后自动同步,无需逐集群上传。POSIX uid/gid 来自平台目录,pam_mkhomedir 在首次登录时创建主目录,无需另建 Slurm 用户库或设置第二套密码。

03

共享同一份数据

/home/<user> 和 /scratch 使用平台共享存储。Slurm 作业生成的文件可直接在 Notebook 中读取,无需在不同环境之间复制。

04

自动同步平台配额

account-sync 控制器支持 Leader 选举,将 ConsoleX 工作空间配额同步为 Slurm 账户、关联关系和 GrpTRES 上限(CPU / 内存 / gres/gpu),严格限制资源使用并拒绝超限作业。

05

GPU 调度与资源隔离

通过 -p gpu --gres=gpu:1 申请 GPU 资源,由 Slurm 统一调度。cgroup ConstrainDevices 限制设备访问,作业无法使用未分配给自己的 GPU。

06

通过 Web 门户使用集群

Open OnDemand 提供文件管理、作业管理和 Shell,并在用户配额内以 Slurm 作业运行交互式应用,包括自有 conda/venv 环境中的 JupyterLab(可选 GPU),以及通过 VNC 访问的 Xfce 桌面。门户接入平台 OIDC 单点登录,Shell 可直接连接作业所在的计算节点。

07

通过 REST API 管理作业

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

08

统一监控 Slurm 集群

队列深度、节点状态和 account-sync 健康指标统一接入平台 Prometheus,Grafana 仪表盘与告警规则随 Chart 提供。运维人员可在同一套工具中监控 HPC 和其他平台服务。

09

直接采用上游版本

基于 SchedMD 官方支持的 Slinky operator,直接同步官方 slurmctld / slurmd / slurmrestd 镜像,仅在 login 镜像中增加 SSSD 和集群存储支持。通过 Helm 安装,由 operator 持续同步资源状态,以 Secret 管理密钥,无需维护独立代码分支。

工作原理

使用平台账号,运行现有 Slurm 作业。

  1. 步骤 01

    用平台身份登录

    使用现有平台凭据通过 SSH 或 Web 门户登录。SSSD 对接平台 LDAP 目录完成认证,首次登录时在共享存储上创建主目录。

  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 脚本和使用经验的科研与机器学习团队
  • 正在统一采用 Kubernetes,同时需要支持 HPC 用户的平台团队
  • 希望将独立裸机 Slurm 集群纳入统一管理的组织
  • 需要批处理调度和配额管理,并希望共用身份与存储系统的团队