遵义城乡住房建设厅网站,网络营销是什么证,医药网站建设方案,wordpress定制器Slurm集群管理系统 Slurm#xff08;Simple Linux Utility for Resource Management#xff0c;https://slurm.schedmd.com/#xff09;是一个开源的、容错的、高度可扩展的集群管理和作业调度系统#xff0c;适用于大型和小型高性能计算#xff08;HPC#xff09;集群。… Slurm集群管理系统 SlurmSimple Linux Utility for Resource Managementhttps://slurm.schedmd.com/是一个开源的、容错的、高度可扩展的集群管理和作业调度系统适用于大型和小型高性能计算HPC集群。计算系统可利用Slurm对资源和作业进行管理以避免相互干扰提高运行效率。所有需运行的作业无论是用于程序调试还是业务计算都可以通过交互式并行 srun 、批处理式 sbatch 或分配式 salloc 等命令提交提交后可以利用相关命令查询作业状态等。作为一个集群工作负载管理器Slurm有三个关键功能。 将资源计算节点的排他或非排他访问权分配给用户让他们在一定的时间内执行作业。 提供了一个框架用于启动、执行和监控所分配节点上的工作通常是一个平行作业。 通过管理一个待处理作业的队列来仲裁对资源的争夺。 扫码关注微信公众号【生信F3】获取文章完整信息分享生物信息学最新知识。 ShengXinF3_QRcode 术语 节点 Hea Node头节点、管理节点、控制节点运行slurmctld管理服务的节点。 Compute Node计算节点运行作业计算任务的节点需运行slurmd服务。 Login Node用户登录节点用于用户登录的节点注意不要在登陆节点执行复杂任务。 SlurmDBD NodeSlurmDBD节点、SlurmDBD数据库节点存储调度策略、记账和作业等信息的节点需运行slurmdbd服务。 客户节点含计算节点和用户登录节点。 用户 account账户一个账户可以含有多个用户。 user用户多个用户可以共享一个账户。 bank account银行账户对应机时费等。 资源 GRESGeneric Resource通用资源。 TRESTrackable RESources可追踪资源。 QOSQuality of Service服务质量作业优先级。 association关联。可利用其实现如用户的关联不在数据库中这将阻止用户运行作业。该选项可以阻止用户访问无效账户。 Partition队列、分区。用于对计算节点、作业并行规模、作业时长、用户等进行分组管理以合理分配资源。不同的节点的特性和硬件属性不同设置分区可以帮助用户更好确定节点的特点进而选择最适合自己的节点进行运算。此外如果集群中部分机器是私有的那么设置分区可以使得只有部分用户能在这个分区提交作业。总的来说分区Partition可看做 一系列节点的集合。 Slurm架构 Slurm由一个运行在每个计算节点上的slurmd守护进程Slurm Daemon和一个运行在管理节点上的中央slurmctld守护进程Slurm Central Daemon组成。各计算节点需启动slurmd守护进程以便被作为远程shell使用等待作业、执行作业、返回状态、再等待更多作业。 slurmdbd数据库守护进程Slurm DataBase Daemon可以将多个slurm管理的集群的记账信息记录在同一个数据库中。用户工具包含 srun 运行作业 scancel 终止排队中或运行中的作业 sinfo 查看系统状态 squeue 查看作业状态 sacct 查看运行中或结束了的作业及作业步信息等命令。 sview 命令可以图形化显示系统和作业状态可含有网络拓扑。 scontrol 作为管理工具可以监控、修改集群的配置和状态信息等。 由 Slurm守护进程Slurmd管理的实体包括 节点nodeSlurm中的计算资源 分区partition将节点分组为逻辑可能是重叠的集合。 作业job在特定时间内分配给一个用户的资源分配 作业步骤job step一个作业中的一组可能是平行的任务。 分区可以被认为是作业队列每个队列都有各种各样的约束如作业大小限制、作业时间限制、允许使用的用户等。按优先级排序的作业在一个分区内被分配节点直到该分区内的资源节点、处理器、内存等被用完。一旦作业被分配到一组节点用户就能在分配范围内以作业步骤的形式启动并行工作。例如可以利用分配给作业的所有节点启动一个作业步骤或者几个作业步骤可以相互独立的使用分配给作业的节点。 Slurm用法 作业提交Job Submission 交互式作业任务 srun srun 用于在Slurm管理的集群上提交并行作业任务。一般情况下srun将首先创建一个资源分配jobid后在其中运行并行作业。srun 有多种选项来指定资源要求包括最小和最大的节点数、处理器数、使用或不使用的特定节点以及特定的节点特性内存、磁盘空间、某些需要的功能等。一个作业可以包含多个作业步骤在作业的节点分配范围内的独立或共享资源上顺序或平行执行。 # 请求在all分区上使用1个线程1G内存执行sh脚本srun -p all -c 1 --mem 1G sh sleep_1.sh# 请求在all分区上使用1个线程1G内存执行sleep命令srun -p all -c 1 sleep 5s 参数详解 -p, --partitionname 指定分区 -c, --cpus-per-task 请求为每个进程分配的 cpu 核数。 批处理提交任务 sbatch sbatch 用于向集群提交一个批处理脚本。批处理脚本可以通过命令行上的文件名提供给sbatch如果没有指定文件名sbatch将从标准输入读入脚本。在将脚本成功转移到Slurm控制器并为其分配Slurm作业ID后sbatch将立即退出。批处理脚本不一定会立即获得资源在所需资源可用之前它可能会在待处理作业队列中等待一段时间。这种方式类似于通过将 srun 指令压入后台执行 $ sbatch myscript.sh# 类似于$ nohup srun -p partition1 sh myscript.sh 默认情况下标准输出和标准错误都被定向到名为“slurm-%j”的文件中。其中“%j”被替换为作业分配号。sbatch 成功时返回 0失败时返回错误代码。 通常来说一个sbatch作业脚本分为3个部分 #!/bin/bash 第一行是脚本语言解释器的路径一般选择 bash 作为解释器 可省略以 #SBATCH 引导的 Slurm 设置选项 要运行的命令。 注意我们应当把所有的 #SBATCH 开头的行放在一起同时放在脚本的顶部。必须在所有的 #SBATCH 行结束之后才能写 bash code 和变量设置一个典型的任务提交脚本如下 #!/bin/sh#SBATCH --time1srun hostname |sort 将该脚本投递到4个计算节点上执行 $ sbatch -N4 myscriptsalloc: Granted job allocation 65537$ cat slurm-65537.outhost1host2host3host4 常用设置选项如下 #SBATCH -J, --job-namename # 指定作业名#SBATCH -n, --ntaskscount # Number of tasks to be launched#SBATCH -Nminnodes[-maxnodes] # 指定节点数#SBATCH -p, --partitionname # 指定分区#SBATCH --memMB # 指定单个或多个核心可用的整个内存池的大小#SBATCH --timeminutes # 限定运行时间#SBATCH -Nminnodes[-maxnodes] # 请求节点数#SBATCH -c, --cpus-per-taskncpus # number of cpus required per task#SBATCH -o, --outputfilename # 指定用于批处理脚本标准输出的文件#SBATCH -e, --errorfilename # 指定用于批处理脚本标准错误输出的文件 作业管理Job Management Slurm 提供了丰富的追踪任务的命令这些命令有助于查看正在运行或已完成的任务状态。当用户认为任务异常时可使用这些工具来追踪任务的信息。 sinfo 查询计算节点和分区状态 其中 STATE 常见的有 alloc节点已经被分配给作业任务 down节点当前不可用 drain节点被管理员设置为退出服务 idle节点当前空闲 mix节点有部分计算资源已被分配还有部分资源空闲可用 squeue 报告作业或作业步骤的状态。它有各种各样的过滤、排序和格式化选项。默认情况下它按优先顺序报告正在运行的作业然后按优先顺序报告待处理的作业。 squeue -u Usernamesqueue -p Partitionsqueue -j JobIDs squeue 显示的信息包括以下内容 JobID作业编号 PARTITION作业在哪个分区上运行 NAME作业名称默认是作业脚本的名字 USER作业的所有者 ST作业当前状态详见 Job State Codes常见的有 CG 作业正在完成 F 作业失败 PD 作业正在等待分配资源 R 作业正在运行 TIME作业已运行时间 NODES作业占用的计算节点数 NODELIST作业占用的计算节点名 (REASON)作业正在等待执行的原因详见 Job Reason Codes 显示的状态信息里包括了作业程序运行所在的计算节点名使用 ssh 计算节点名 可以登录到计算节点。在计算节点上使用 top 命令可以查看程序使用 CPU 的状况。 scancel 取消作业。先运行 squeue 命令查询作业编号数字 JobID 然后运行以下命令取消作业 scancel JOBID scontrol 是用来查看和/或修改Slurm状态的管理工具。注意许多 scontrol 命令只能以 root 身份执行。对于正在运行或排队的任务可以使用 scontrol show job JobID 扫码关注微信公众号【生信F3】获取文章完整信息分享生物信息学最新知识。 ShengXinF3_QRcode 参考资料 作业调度管理系统 http://docs.hpc.whu.edu.cn/files/whuhpcdocs.wiki/slurm_basic.html Slurm资源管理与作业调度系统安装配置 http://hmli.ustc.edu.cn/doc/linux/slurm-install/slurm-install.html SLURM 使用参考 https://bicmr.pku.edu.cn/~wenzw/pages/slurm.html 本文由 mdnice 多平台发布