Pyxis:让容器化任务在Slurm集群中无缝运行
2024-05-29 22:12:49作者:咎岭娴Homer
Pyxis是一个为Slurm工作负载管理器设计的SPANK插件,它允许无特权的集群用户通过srun命令执行容器化的任务。其名字来源于古希腊语中的小型容器,象征着该工具能将你的任务封装在一个安全、独立的环境中运行。
功能优势
- 无需特殊权限即可在容器内执行用户任务
- 简洁的命令行界面
- 快速的Docker镜像下载,支持层缓存和层共享,提高效率
- 支持多节点MPI作业,兼容PMI2或PMIx(需Slurm支持)
- 允许用户在容器内部安装软件包
- 与共享文件系统良好集成
- 不需要在整个集群范围内管理从属用户/组ID
安装
Pyxis依赖于enroot容器工具(版本3.1.0)。安装过程包括编译、创建链接,并重启slurmd服务。具体步骤在项目文档中有详细说明,支持使用make install、deb包以及rpm包进行安装。
使用
作为SPANK插件,Pyxis引入的新命令行参数直接添加到srun中。例如,你可以使用--container-image指定容器镜像,--container-mounts设置挂载点,--container-workdir设定容器内的工作目录等。项目中提供了详细的使用示例,包括srun和sbatch命令。
srun 示例
$ # 在一个工作节点上运行命令
$ srun grep PRETTY /etc/os-release
PRETTY_NAME="Ubuntu 20.04.2 LTS"
$ # 将命令放入容器中运行
$ srun --container-image=centos grep PRETTY /etc/os-release
PRETTY_NAME="CentOS Linux 8"
$ # 从主机挂载文件并容器内运行命令
$ srun --container-image=centos --container-mounts=/etc/os-release:/host/os-release grep PRETTY /host/os-release
PRETTY_NAME="Ubuntu 20.04.2 LTS"
sbatch 示例
$ # 在一个容器内运行sbatch脚本
$ sbatch --wait -o slurm.out <<EOF
#!/bin/bash
#SBATCH --container-image nvcr.io\#nvidia/pytorch:21.12-py3
python -c 'import torch ; print(torch.__version__)'
EOF
$ cat slurm.out
pyxis: importing docker image: nvcr.io#nvidia/pytorch:21.12-py3
1.11.0a0+b6df043
更进一步
为了深入了解Pyxis,访问项目wiki页面,你将找到关于安装、配置和使用的高级指南。
此外,对于遇到的问题或者希望贡献代码,你可以通过提交新问题或发起pull request参与。
最后,如果你发现了任何安全问题,请不要公开,而是直接发送邮件至psirt<at>nvidia.com进行负责任地披露。
Pyxis凭借其强大的功能和简便的操作,是优化Slurm集群资源管理和利用的理想选择。立即尝试Pyxis,解锁你的集群潜力吧!
登录后查看全文
热门项目推荐
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0152- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
LongCat-Video-Avatar-1.5最新开源LongCat-Video-Avatar 1.5 版本,这是一款经过升级的开源框架,专注于音频驱动人物视频生成的极致实证优化与生产级就绪能力。该版本在 LongCat-Video 基础模型之上构建,可生成高度稳定的商用级虚拟人视频,支持音频-文本转视频(AT2V)、音频-文本-图像转视频(ATI2V)以及视频续播等原生任务,并能无缝兼容单流与多流音频输入。00
auto-devAutoDev 是一个 AI 驱动的辅助编程插件。AutoDev 支持一键生成测试、代码、提交信息等,还能够与您的需求管理系统(例如Jira、Trello、Github Issue 等)直接对接。 在IDE 中,您只需简单点击,AutoDev 会根据您的需求自动为您生成代码。Kotlin03
Intern-S2-PreviewIntern-S2-Preview,这是一款高效的350亿参数科学多模态基础模型。除了常规的参数与数据规模扩展外,Intern-S2-Preview探索了任务扩展:通过提升科学任务的难度、多样性与覆盖范围,进一步释放模型能力。Python00
skillhubopenJiuwen 生态的 Skill 托管与分发开源方案,支持自建与可选 ClawHub 兼容。Python0112
项目优选
收起
暂无描述
Dockerfile
733
4.75 K
Ascend Extension for PyTorch
Python
618
795
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
433
395
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.01 K
1.01 K
Claude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed.
Get Started
Rust
1.18 K
152
deepin linux kernel
C
29
16
华为昇腾面向大规模分布式训练的多模态大模型套件,支撑多模态生成、多模态理解。
Python
145
237
暂无简介
Dart
983
252
昇腾LLM分布式训练框架
Python
166
198
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.68 K
989