SLURM集群管理初学者指南

需积分: 0 6 下载量 8 浏览量 更新于2024-08-05 收藏 508KB PDF 举报
"SLURM使用入门教程,包括交互式环境、SBATCH命令、任务管理和取消任务的方法,以及SLURM集群工作负载管理器的基本概念。" SLURM(Simple Linux Utility for Resource Management)是一个广泛使用的集群工作负载管理器,特别适用于高性能计算环境。通过SLURM,用户可以有效地管理和调度在多台计算机节点上的作业,确保资源得到充分利用。 在SLURM环境中,用户首先需要编写一个脚本,如`template.slurm`,它包含了作业的配置信息,如所需的资源、运行的命令等。例如,`SBATCH`指令用于设置作业参数,如队列选择、内存需求、运行时间限制等。在`demo.sh`脚本中,用户可以编辑`EDITHERE`部分以指定要执行的命令,如获取主机名。 提交作业使用`sbatch`命令,这将把脚本提交到默认队列等待执行。用户可以通过`squeue`命令查看作业的状态,包括作业ID、分区、用户名、剩余时间、节点分配等。当作业开始运行,输出和错误信息会被重定向到如`ret-$ID.out`和`ret-$ID.err`的文件中,便于用户后期检查。 对于交互式环境,SLURM允许用户在运行作业的计算节点上进行SSH登录。但是,只有当用户有正在运行的任务在特定节点上时,才能登录该节点。登录后,用户只能访问与当前任务相关的资源。如果作业超时,用户将被自动登出,且未完成的进程会被终止。 要取消正在运行的任务,可以使用`scancel`命令,指定作业ID即可。如果任务状态长时间处于"CG"(Completing)或"COMPLETING",可能表示程序无响应,可能是由于I/O问题或GPU资源占用导致。这时,应联系管理员协助处理。 SLURM架构包括一个中心管理器`slurmctld`,负责监控资源使用,并可设置备份管理器以应对主管理器故障。每个计算节点都运行一个名为`srun`的服务,它协调并执行节点上的任务。此外,SLURM支持多种调度策略,如FAIR、ROUND_ROBIN等,以满足不同用户和应用的需求。 SLURM提供了一个高效、灵活的框架,帮助用户在集群环境中有效地管理大量计算任务,是大规模科学计算和数据分析的重要工具。理解和掌握SLURM的使用对于科研人员和IT专业人员来说至关重要。