多集群操作

一个集群由一个 slurmctld 守护进程管理的所有节点组成。Slurm 提供了将命令定向到其他集群的能力,而不仅仅是本地集群。当启用此功能时,用户可以向一个或多个集群提交作业,并从这些远程集群接收状态。

例如:

juser@dawn> squeue -M dawn,dusk
CLUSTER: dawn
JOBID PARTITION   NAME   USER  ST   TIME NODES BP_LIST(REASON)
76897    pdebug  myJob  juser   R   4:10   128 dawn001[8-15]
76898    pdebug  myJob  juser   R   4:10   128 dawn001[16-23]
16899    pdebug  myJob  juser   R   4:10   128 dawn001[24-31]

CLUSTER: dusk
JOBID PARTITION   NAME   USER  ST   TIME NODES BP_LIST(REASON)
11950    pdebug   aJob  juser   R   4:20   128 dusk000[0-15]
11949    pdebug   aJob  juser   R   5:01   128 dusk000[48-63]
11946    pdebug   aJob  juser   R   6:35   128 dusk000[32-47]
11945    pdebug   aJob  juser   R   6:36   128 dusk000[16-31]

大多数 Slurm 客户端命令提供了 "-M, --clusters=" 选项,允许与以逗号分隔的集群列表进行通信。

sbatchsallocsrun 使用集群列表调用时,Slurm 将立即将作业提交到提供最早开始时间的集群,前提是其待处理和正在运行的作业队列。Slurm 不会在后续努力将作业迁移到列表中资源可用的其他集群(当运行的作业在其预定结束时间之前完成时)。

注意:为了使 sallocsrun 在多集群环境中与 "-M, --clusters" 选项一起工作,计算节点必须能够从提交主机访问。

多集群配置

多集群功能需要使用 SlurmDBD。slurm.conf 文件中的 AccountingStorageType 必须设置为 accounting_storage/slurmdbd 插件,并且必须安装 MUNGE 或身份验证密钥,以允许每个集群与 SlurmDBD 通信。请注意,MUNGE 可以配置为在集群内和跨集群通信时使用不同的密钥(如果需要)。有关详细信息,请参见 会计

配置完成后,指定 "-M, --clusters=" 选项的 Slurm 命令将对由 "sacctmgr show clusters" 命令列出的所有集群生效。

另请参见 Slurm 联邦调度指南

最后修改于 2021 年 6 月 9 日