跳转至内容

Slurm

来自 ArchWiki

Slurm(也称为 Slurm Workload Manager 或 slurm-llnl)是一款开源工作负载管理器,专为各种规模的 Linux 集群设计,被世界上许多超级计算机和计算机集群使用。它提供三个主要功能。首先,它为用户在特定时间段内分配独占和/或非独占的资源(计算节点)访问权限,以便他们可以执行工作。其次,它提供了一个在分配的节点集上启动、执行和监视工作(通常是并行作业)的框架。最后,它通过管理待处理工作的队列来仲裁资源争用。

安装

安装 slurm-llnl 包。它会作为依赖项拉入 munge[1]),一个认证服务。它是通过 slurmd 的 systemd 服务启动的,并加密了各个主机之间的连接。因此,请确保您的集群中的所有节点在 /etc/munge/munge.key 中具有相同的密钥。然后 启动启用 munge.service

软件包本身有许多可选的依赖项,但 Slurm 必须重新编译才能使用它们,一旦它们被安装。

配置

slurm-llnl 的配置文件位于 /etc/slurm-llnl 下。在启动任何 slurm 服务之前,必须通过在 /etc/slurm-llnl/slurm.conf 创建一个配置文件来正确配置它。客户端和服务器可以使用相同的配置文件,该文件可以在 官方网站上生成,或者通过复制 /etc/slurm-llnl/slurm.conf.example/etc/slurm-llnl/slurm.conf 并根据需要进行调整来生成。

默认情况下,在安装过程中添加到您系统的 Slurm 用户具有 64030 作为 UID 和 GID,这简化了在多个系统上的设置。UID 和 GID 与 Debian 中使用的相同,因此它们可以并行使用,但请记住,二进制文件在每个发行版中的目录不同。

客户端(计算节点)配置

在客户端,现在可以安全地 启动/启用 slurmd.service

注意 如果您选择使用 Linux cgroups 进行进程跟踪,则必须在每个客户端上创建 cgroup.conf 配置文件。有关配置详细信息,请参阅 cgroup.conf 手册页。

服务器(头节点)配置

启动/启用 slurmctld.service

此外,您可能还想 启动/启用 slurmdbd.service,它处理 SQL 数据库以方便管理,并记录一些重要的进程信息。

注意 通过修改 /etc/default/slurm-llnl 可以在程序中传递附加参数,同时仍然利用 systemd 的强大功能。此文件被视为各种服务的环境文件,并将任何参数传递给程序。

故障排除

服务在启动时失败

如果在启动时 slurmd.serviceslurmctld.service 启动失败,但在手动启动时工作正常,则该服务可能尝试在网络连接建立之前启动。要验证这一点,请将下面与失败服务相关的行添加到 slurm.conf 文件中。

slurm.conf
SlurmctldDebug=info
SlurmctldLogFile=/var/log/slurm-llnl/slurmctld.log
SlurmdDebug=info
SlurmdLogFile=/var/log/slurm-llnl/slurmd.log

然后,检查相关的日志文件。如果您注意到致命异常提到了 Address family not supported by protocol,那么您可能需要 扩展单元,以便它通过 network-online.target 等待有效的网络连接。

技巧与提示

并行运行基于 RHEL 的节点

在基于 RedHat 的发行版上,slurm 默认以 root 用户运行。[2] 要将这些节点添加到集群,首先创建一个 slurm 用户,其 UIDGID 等于 64030 以匹配 Arch Linux 中使用的用户,然后使用命令 slurm-setuser -u slurm -g slurm 更改 slurm 用户。

参见