相关软件

Slurm 源代码可以从 https://www.schedmd.com/download-slurm/ 下载。

请注意,以下相关软件并不是由 SchedMD 编写或维护的。有些软件是某些功能所必需的(例如,使用 slurmdbd 需要 MySQL 或 MariaDB),而其他软件则是为了为用户或管理员提供额外的功能而编写的。

  • 身份验证 插件用于识别发出消息的用户。
  • 身份验证 工具,供与 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 资源管理器集成。

  • 计费工具
    • UBMoD 是一个基于 Web 的工具,用于显示来自各种资源管理器的计费数据。它将来自 sacct 的计费数据聚合到 MySQL 数据仓库中,并提供前端 Web 界面以浏览数据。 有关更多信息,请参见 UDMod 主页源代码
    • XDMoD(按需 XD 指标) 是一个由 NSF 资助的开源工具,旨在审计和促进 XSEDE 网络基础设施的利用,通过提供关于 XSEDE 资源的广泛指标,包括资源利用率、资源性能以及对学术和研究的影响。

  • STUBL(Slurm 工具和实用程序)
    STUBL 是一组用于 Slurm 的补充工具和实用脚本。
    STUBL 主页

  • pestat
    打印一个合并的计算节点状态行,每个节点一行,包括作业列表。
    主页

  • 图形 Sdiag
    sdiag 工具是一个诊断工具,用于维护 Slurm 调度性能的统计信息。您可以定期运行 sdiag,或者在修改 Slurm 配置时运行。然而,如果您想要这些统计信息的历史视图,您可以将其保存在时间序列数据库中,并随着时间的推移绘制它们,就像使用这个工具一样:

  • JSON

    一些 Slurm 插件(slurmrestd, burst_buffer/datawarp, burst_buffer/lua, jobcomp/elasticsearchjobcomp/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 日