多集群操作
一个集群由一个 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=" 选项,允许与以逗号分隔的集群列表进行通信。
当 sbatch、salloc 或 srun 使用集群列表调用时,Slurm 将立即将作业提交到提供最早开始时间的集群,前提是其待处理和正在运行的作业队列。Slurm 不会在后续努力将作业迁移到列表中资源可用的其他集群(当运行的作业在其预定结束时间之前完成时)。
注意:为了使 salloc 或 srun 在多集群环境中与 "-M, --clusters" 选项一起工作,计算节点必须能够从提交主机访问。
多集群配置
多集群功能需要使用 SlurmDBD。slurm.conf 文件中的 AccountingStorageType 必须设置为 accounting_storage/slurmdbd 插件,并且必须安装 MUNGE 或身份验证密钥,以允许每个集群与 SlurmDBD 通信。请注意,MUNGE 可以配置为在集群内和跨集群通信时使用不同的密钥(如果需要)。有关详细信息,请参见 会计。
配置完成后,指定 "-M, --clusters=" 选项的 Slurm 命令将对由 "sacctmgr show clusters" 命令列出的所有集群生效。
另请参见 Slurm 联邦调度指南。
最后修改于 2021 年 6 月 9 日