Slurm

出自 ArchWiki

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

安装

安装 slurm-llnl 软件包(或 slurm-llnl-gitAUR)。 它会拉取 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 用户,其 UID 和 GID 为 64030,这简化了在多个系统上的设置。 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 用户。

参见