超算小站 超算小站
首页
  • 注册账号
  • 登录系统
  • 熟悉系统
  • 配置环境
  • 数据管理
  • 作业管理
  • 集群软件环境:

    • 01.编译环境
    • 02.基础库
    • 03.应用软件
    • 04.工具软件
    • 05.常用语言环境
    • 06.使用进阶
  • 入门课程

    • 01.超算历史
    • 02.VPN登录
    • 03.Mobaxterm工具
    • 04.Linux基本命令
    • 05.Module环境变量管理工具
    • 06.Vim文本编辑器使用
    • 07.Slurm作业管理系统
HPC&AI
  • 01.登录问题
  • 02.编译问题
  • 03.作业问题
  • 04.存储和数据问题
  • 05.GPU问题
资料下载
归档
关于我
🚀试用
首页
  • 注册账号
  • 登录系统
  • 熟悉系统
  • 配置环境
  • 数据管理
  • 作业管理
  • 集群软件环境:

    • 01.编译环境
    • 02.基础库
    • 03.应用软件
    • 04.工具软件
    • 05.常用语言环境
    • 06.使用进阶
  • 入门课程

    • 01.超算历史
    • 02.VPN登录
    • 03.Mobaxterm工具
    • 04.Linux基本命令
    • 05.Module环境变量管理工具
    • 06.Vim文本编辑器使用
    • 07.Slurm作业管理系统
HPC&AI
  • 01.登录问题
  • 02.编译问题
  • 03.作业问题
  • 04.存储和数据问题
  • 05.GPU问题
资料下载
归档
关于我
🚀试用
  • 注册账号

  • 登录系统

  • 熟悉系统

  • 配置环境

  • 数据管理

  • 作业管理

    • slurm

      • 简介
      • sinfo
      • srun
      • sbatch
        • sbatch 命令
          • 疑问:yhbatch 和 yhrun 都申请资源了?
      • squeue
      • scancel
      • salloc
      • scontrol
      • sacct
    • scripts

  • 技术支持
  • 用户手册
  • 作业管理
  • slurm
mrzhenggang
2024-06-17
目录

sbatch

# sbatch 命令

使用 sbatch 命令是最为推荐的方式,先编写一个脚本(别担心,很简单),然后用提交命令提交这个脚本即可。

天河对应的命令为 yhbatch,本文以 yhq 命令为例进行介绍。

1)编写脚本

使用文本编辑器(例如vim等),创建一个用于提交作业的脚本文件,例如名为sub.sh的文件。

$ vim sub.sh
1

然后写入脚本内容

#!/bin/bash
yhrun -N 2 -n 24 -p debug executable [args...]
1
2

里面写的内容和yhrun提交方式的内容完全相同。

2)提交脚本

$ yhbatch -N 2 -n 24 -p debug sub.sh
Submitted batch job 1454916
1
2

成功提交后,返回Submitted batch job 1454916,这一串数字就是该任务的JOBID。

参数说明如下:

关键词 含义 备注
yhbatch 提交批处理脚本的命令
-N 总节点数 -N 2 表示用2个计算节点
-n 总核数 -n 24 表示一共用24个cpu核心
-p 计算分区 -p debug 表示用debug计算分区
sub.sh 提交脚本名 可以依据任务不同编写其他名称的脚本文件

优势:使用这种方式提交的任务,会自动生成一个名为slurm-jobid.out的文件,其中jobid是slurm分配给这个任务的具体编号数字。里面会有除了程序特殊指定,或用户重定向以外的所有作业的标准输出和错误信息。当计算任务出现错误的时候,我们也是第一时间查看该文件,寻找原因。

# 疑问:yhbatch 和 yhrun 都申请资源了?

当在 yhbatch 和 yhrun 命令中同时指定了如 -N -n 等参数时,谁会起作用呢?

1、首先,yhbatch 和 yhrun 命令起作用的顺序是:先通过 yhbatch 进行作业提交,作业成功提交后,会逐行运行作业脚本,直到运行到 yhrun 命令所在的行时 yhrun 的参数才会(尝试)生效)。

2、如果 yhbatch 指定了 -N -n ,而 yhrun 命令指定:那么 slurm 生成的该 jobid 中的环境变量就是 SLURM_NNODES 和 SLURM_NPROCS,也就是说 yhbatch 的参数形成了该任务运行脚本环境下的环境变量参数。 yhrun 不写 -N -n 时,就会通过读取环境变量的值来执行。因此,实际效果就是两个命令的 -N -n 参数是一样的。

3、如果 yhbatch 指定了 -N -n ,而 yhrun 命令也指定了。

(1)当yhrun运行需要的计算资源 < yhbatch申请的计算资源,那么就会真正执行 yhrun 指定的 -N -n 值,因此会造成申请的资源没有被充分利用,导致资源浪费。

(2)当yhrun运行需要的计算资源 = yhbatch申请的计算资源,这和 yhrun 不写参数效果一样,两者都是申请多少资源使用多少资源,比较推荐。

(3)当yhrun运行需要的计算资源 > yhbatch申请的计算资源,也就是申请的少,想用的多,那就会报错了,例如 yhrun: error: Only allocated 1 nodes asked for 2

srun
squeue

← srun squeue→

Theme by Vdoing | Copyright © 2015-2024 Zheng Gang | MIT License | 津ICP备2021008634号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×