相关软件
Slurm 源代码可以从 https://www.schedmd.com/download-slurm/ 下载。
请注意,以下相关软件并不是由 SchedMD 编写或维护的。有些软件是某些功能所必需的(例如,使用 slurmdbd 需要 MySQL 或 MariaDB),而其他软件则是为了为用户或管理员提供额外的功能而编写的。
- 身份验证 插件用于识别发出消息的用户。
- MUNGE(推荐)
为了编译 Slurm 的 "auth/munge" 身份验证插件,您需要构建并安装 MUNGE,您可以从 https://dun.github.io/munge/ 和 Debian 以及 Fedora 和 Ubuntu 下载。 - 身份验证 工具,供与 Slurm 一起使用的用户使用。
- AUKS
AUKS 是一个旨在简化 Kerberos V 凭证支持添加到非交互式应用程序(如批处理系统(Slurm、LSF、Torque 等))的工具。它包括一个用于 Slurm 工作负载管理器的插件。AUKS 并不是 Slurm 代码本身使用的身份验证插件,但提供了一种机制,供应用程序管理 Kerberos V 凭证。 - 数据库 可用于存储计费信息。 有关更多信息,请参见我们的 计费 网页。
- DRMAA(分布式资源管理应用程序接口)
PSNC DRMAA 为 Slurm 提供了一个实现 开放网格论坛 DRMAA 1.0(分布式资源管理应用程序接口) 规范,用于提交 和控制作业到 Slurm。 使用 DRMAA,网格应用程序构建者、门户开发人员和独立软件供应商可以使用 相同的高级 API 将他们的软件与不同的集群/资源管理系统连接。
有一个 PSNC DRMAA 的变体提供对 Slurm 的 --cluster 选项的支持,您可以从 https://github.com/natefoo/slurm-drmaa 下载。
Perl 6 DRMAA 绑定可以从 https://github.com/scovit/Scheduler-DRMAA 获取。 - 硬件拓扑
- 可移植硬件局部性(hwloc)
- 注意:如果您使用 hwloc 构建 Slurm 或任何 MPI 堆栈组件,请注意 hwloc 的版本 2.5.0 到 2.7.0(包括)存在一个错误,该错误将一个不可触及的值推入 environ 数组,导致访问时发生段错误。建议使用 hwloc 版本 2.7.1 或更高版本进行构建。
- 由 slurmd 和 PMIx 客户端用于获取硬件拓扑信息。
- 主机列表
一个用于操作 Slurm 主机列表的 Python 程序,包括交集和差集等功能。可以从以下地址下载代码:
http://www.nsc.liu.se/~kent/python-hostlist
主机列表功能的 Lua 绑定也可以在这里找到:
https://github.com/grondo/lua-hostlist
注意:Lua 主机列表功能不支持除名称末尾外的任何地方的带括号的数字范围(即 "tux[0001-0100]" 和 "rack[0-3]_blade[0-63]" 不被支持)。 - 支持的 MPI 版本
- 命令包装器
有一个用于 Maui/Moab 的 showq 命令的包装器 在这里。 - 脚本接口
- 一个 Perl 接口包含在 Slurm 分发版的 contribs/perlapi 目录中,并打包在 perlapi RPM 中。
- PySlurm 是一个 用于与 Slurm 接口的 Python/Cython 模块。 还有一个 Python 模块用于扩展和收集主机列表表达式,您可以在 这里 获取。
- SPANK 插件
SPANK 提供了一个非常通用的接口,用于可堆叠的插件,可以用于动态修改 Slurm 中的作业启动代码。SPANK 插件可以在没有访问 Slurm 源代码的情况下构建。它们只需与 Slurm 的 spank.h 头文件进行编译,添加到 SPANK 配置文件 plugstack.conf 中,并将在下次作业启动时加载。因此,SPANK 基础架构为管理员和其他开发人员提供了以低成本、低努力动态修改 Slurm 作业启动运行时行为的能力。 更多文档可以在这里找到。 - 节点健康检查
可能最全面且轻量的健康检查工具是 LBNL 节点健康检查。 它与 Slurm 以及 Torque 资源管理器集成。 - 计费工具
- STUBL(Slurm 工具和实用程序)
STUBL 是一组用于 Slurm 的补充工具和实用脚本。
STUBL 主页。 - pestat
打印一个合并的计算节点状态行,每个节点一行,包括作业列表。
主页 - 图形 Sdiag
sdiag 工具是一个诊断工具,用于维护 Slurm 调度性能的统计信息。您可以定期运行 sdiag,或者在修改 Slurm 配置时运行。然而,如果您想要这些统计信息的历史视图,您可以将其保存在时间序列数据库中,并随着时间的推移绘制它们,就像使用这个工具一样: - JSON
一些 Slurm 插件(slurmrestd, burst_buffer/datawarp, burst_buffer/lua, jobcomp/elasticsearch 和 jobcomp/kafka)解析和/或 序列化 JSON 格式数据。这些插件和 slurmrestd 旨在 利用JSON-C 库(>= v0.15)。构建说明如下:
git clone --depth 1 --single-branch -b json-c-0.15-20200726 https://github.com/json-c/json-c.git json-c mkdir json-c-build cd json-c-build cmake ../json-c make sudo make install
在编译 Slurm 之前声明包配置路径 (示例提供给 /bin/sh):export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/:$PKG_CONFIG_PATH
-
HTTP 解析器
slurmrestd 需要 libhttp_parser (>= v2.6.0)。构建说明如下:
git clone --depth 1 --single-branch -b v2.9.4 https://github.com/nodejs/http-parser.git http_parser cd http_parser make sudo make install
在运行 Slurm 的 configure 时添加以下参数:--with-http-parser=/usr/local/
-
YAML 解析器
slurmrestd 和识别
--yaml
标志的命令将能够解析 YAML,如果 libyaml (>= v0.2.5) 存在。构建说明如下:git clone --depth 1 --single-branch -b 0.2.5 https://github.com/yaml/libyaml libyaml cd libyaml ./bootstrap ./configure make sudo make install
在运行 Slurm 的 configure 时添加以下参数:--with-yaml=/usr/local/
-
JWT 库
JWT 身份验证 需要 libjwt (>= v1.10.0)。构建说明如下:
git clone --depth 1 --single-branch -b v1.12.0 https://github.com/benmcollins/libjwt.git libjwt cd libjwt autoreconf --force --install ./configure --prefix=/usr/local make -j sudo make install
在运行 Slurm 的 configure 时添加以下参数:--with-jwt=/usr/local/
最后修改于 2024 年 3 月 13 日