slurm使用入门

简介

SLURM (Simple Linux Utility for Resource Management)
一种可用于大型计算节点集群的高度可伸缩和容错的集群管理器和作业调度系统

命令

查询分区和节点的状态:

(base) xueruini@nico4:~$ sinfo
PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST
V100*        up 1-00:00:00      2  alloc nico[1-2]
Hyb          up 1-00:00:00      1   idle nico3


可能遇到:

(base) xueruini@nico4:~/onion_rain/pytorch/code/ssd.pytorch$ sinfo 
PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST                  
V100*        up 1-00:00:00      1  drain nico2                     
V100*        up 1-00:00:00      1  alloc nico1                     
Hyb          up 1-00:00:00      1   idle nico3                     

STATE为drain的节点,无法alloc,此时可以使用如下命令查看原因:

(base) xueruini@nico4:~/onion_rain/pytorch/code/ssd.pytorch$ sinfo -R 
REASON               USER      TIMESTAMP           NODELIST           
Kill task failed     root      2020-08-18T15:47:15 nico2              

查询节点信息:

(base) xueruini@nico4:~$ scontrol show node nico1
NodeName=nico1 Arch=x86_64 CoresPerSocket=16
   CPUAlloc=32 CPUTot=32 CPULoad=0.16
   AvailableFeatures=(null)
   ActiveFeatures=(null)
   Gres=(null)
   NodeAddr=nico1 NodeHostName=nico1 Version=18.08
   OS=Linux 4.19.0-8-amd64 #1 SMP Debian 4.19.98-1 (2020-01-26)
   RealMemory=128000 AllocMem=0 FreeMem=215529 Sockets=2 Boards=1
   State=ALLOCATED ThreadsPerCore=2 TmpDisk=0 Weight=1 Owner=N/A MCS_label=N/A
   Partitions=V100
   BootTime=2020-07-01T21:40:55 SlurmdStartTime=2020-07-01T21:50:13
   CfgTRES=cpu=32,mem=125G,billing=32
   AllocTRES=cpu=32,mem=125G,billing=32
   CapWatts=n/a
   CurrentWatts=0 LowestJoules=0 ConsumedJoules=0
   ExtSensorsJoules=n/s ExtSensorsWatts=0 ExtSensorsTemp=n/s

查询分区信息:

(base) xueruini@nico4:~$ scontrol show partition V100
PartitionName=V100
   AllowGroups=ALL AllowAccounts=ALL AllowQos=ALL
   AllocNodes=ALL Default=YES QoS=N/A
   DefaultTime=NONE DisableRootJobs=NO ExclusiveUser=NO GraceTime=0 Hidden=NO
   MaxNodes=UNLIMITED MaxTime=1-00:00:00 MinNodes=0 LLN=NO MaxCPUsPerNode=UNLIMITED
   Nodes=nico[1-2]
   PriorityJobFactor=1 PriorityTier=1 RootOnly=NO ReqResv=NO OverSubscribe=NO
   OverTimeLimit=NONE PreemptMode=OFF
   State=UP TotalCPUs=64 TotalNodes=2 SelectTypeParameters=NONE
   JobDefaults=(null)
   DefMemPerNode=UNLIMITED MaxMemPerNode=UNLIMITED

查询作业状态:

(base) xueruini@nico4:~$ squeue
             JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)
                27      V100     bash xueruini  R    1:29:41      1 nico1
                33      V100      zsh   heheda  R      15:26      1 nico2

在这里插入图片描述
创建分配式任务(资源抢占):
在这里插入图片描述
salloc常用参数:

--help  
# 显示帮助信息;

-A <account>        
# 指定计费账户;

-D, --chdir=<directory>     
 # 指定工作目录;
 
--get-user-env
# 获取当前的环境变量;

--gres=<list>
# 使用gpu这类资源,如申请两块gpu则--gres=gpu:2

-J, --job-name=<jobname>
# 指定该作业的作业名;

--mail-type=<type>
# 指定状态发生时,发送邮件通知,有效种类为(NONE, BEGIN, END, FAIL, REQUEUE, ALL);

--mail-user=<user>
# 发送给指定邮箱;

-n, --ntasks=<number>
# sbatch并不会执行任务,当需要申请相应的资源来运行脚本,默认情况下一个任务一个核心,--cpus-per-task参数可以修改该默认值;

-c, --cpus-per-task=<ncpus>
# 每个任务所需要的核心数,默认为1;

--ntasks-per-node=<ntasks>
# 每个节点的任务数,--ntasks参数的优先级高于该参数,如果使用--ntasks这个参数,那么将会变为每个节点最多运行的任务数;

-o, --output=<filename pattern>
# 输出文件,作业脚本中的输出将会输出到该文件;

-p, --partition=<partition_names>
# 将作业提交到对应分区;

-q, --qos=<qos>
# 指定QOS;
 
-t, --time=<time>
# 设置限定时间;

取消任务:

(base) xueruini@nico4:~$ scancel 28
salloc: Job allocation 28 has been revoked.

在某个节点有任务,就可以ssh过去:

(base) xueruini@nico4:~$ ssh nico1
Linux nico1 4.19.0-8-amd64 #1 SMP Debian 4.19.98-1 (2020-01-26) x86_64
NICO NICO NI ~~~

Welcome to NICO cluster!

Current Nodes: nico[1-4]

Hardware:
nico1: 8xV100 32G, IB
nico2: 8xV100 32G, IB
nico3: 4xV100 32G, 4xP100              (for reproducing results on P100, contact @huangkz before using)
nico4: 1xP100, 1xGTX1080, 1xRADEON VII (for AMD related research, contact @laekov before using)

Spack is one good west east. We use spack to manage packages.

Use the following command to initialize spack:
source /opt/spack/share/spack/setup-env.sh

And use the following command to manage packages (environment-module not needed any more):
spack load openmpi@3.1.2%intel@19        # for example
spack find --loaded                      # list all loaded packages
spack unload openmpi                     # unload currently loaded package

If you have any questions about spack, please do not hesitate to ask YJP.

If the cluster is down, blame Harry Chen.

Last login: Thu Jul  2 12:03:44 2020 from 172.23.18.4
-bash: pyenv: command not found
(base) xueruini@nico1:~$

没任务是无法ssh过去的:

(base) xueruini@nico1:~$ ssh nico2
Access denied: user xueruini (uid=17987) has no active jobs on this node.
Connection closed by 172.23.18.2 port 22

参考

slurm作业管理系统怎么用?
SLURM使用基础教程
北京大学高性能计算使用指南

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于slurm使用教程,你可以参考以下步骤: 1. 首先,确保你已经在你的系统上安装了slurm。你可以从slurm官网下载适合你系统的软件包。 2. 一旦安装完成,你需要配置slurm。你可以根据你的需求修改配置文件,如slurm.conf。这个文件包含了各种有关集群和作业调度的设置。你可以根据需要设置集群的节点、作业队列、资源限制等信息。 3. 在配置完成后,你可以启动slurm服务。使用命令行工具或者slurm提供的脚本,启动slurm控制守护进程(scontrol daemon),它负责集群的管理和作业调度。 4. 现在,你可以开始使用slurm来提交作业了。使用sbatch命令来提交一个作业脚本,该脚本描述了你要运行的作业的详细信息,如任务数、CPU核心数、内存需求等。提交作业后,slurm会根据你的配置和集群的资源情况来调度作业。 5. 你可以使用squeue命令来查看当前正在运行和等待运行的作业列表。使用scontrol命令可以查看更多有关作业和集群的信息,如作业状态、节点状态等。 6. 当你的作业完成后,slurm会将结果输出到指定的文件中。你可以使用sacct命令来查询作业的运行情况和结果。 总结起来,使用slurm的基本步骤包括安装slurm、配置slurm、启动slurm服务、提交作业、监视作业状态和结果。这些步骤可以帮助你充分利用slurm来管理和调度你的集群作业。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [集群Slurm使用教程](https://blog.csdn.net/pengru120/article/details/120868403)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [slurm安装指南](https://download.csdn.net/download/yttjupiter/4300960)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [slurm 使用教程](https://blog.csdn.net/funnyPython/article/details/114315004)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值