【如何在服务器帐号上用作业卡提交作业】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

背景:XX气象局服务器(Pi)帐号上有XX中尺度数值预报系统,需用作业卡提交作业,以便服务器分配节点进行运算。

运用场景:

  1. 数值预报系统的作业提交;
  2. 自己写的脚本;比如我有一个Python脚本,但是自己的电脑上内存不够或者运行太慢,我可以写个作业卡让服务器分配一些计算节点来运行我的脚本。

一句话概述:用作业卡分配服务器的计算节点来完成自己提交的任务


一、作业卡是什么?

借用一张流程图:登录进服务器后进入的是登录节点,并不能直接运行程序,需要通过作业调度系统,将作业提交到计算节点上执行,而作业卡可以通过设置参数,通过sbatch命令提交,使得服务器根据作业卡分配节点运行上传的作业。
在这里插入图片描述对Slurm作业调度感兴趣的可以看:http://hmli.ustc.edu.cn/doc/userguide/slurm-userguide.pdf

二、作业卡怎么写

1.关键参数

以下最常用的Slurm参数集表格:
在这里插入图片描述

2.举个例子

以串行计算为例,我想要运行 test1.py 这个python脚本
所以我根据自己需要写了 run_test1.sbatch 这个文件(每行代码都附注释)


#!/usr/bin/bash               ## 脚本的解释器为Bash,这行一般不改

#SBATCH --comment Python      ## 作业的注释为"Python"
#SBATCH -J Python             ## 作业的名称为"Python"
#SBATCH -n 1                  ## 作业节点数为1,按需设置,值越小排队越优先但运行越慢
#SBATCH --ntasks-per-node=32  ## 每个节点上运行的任务数为32,有的服务器是64
#SBATCH -p serial             ## 作业的分区为"serial",表示作业将在串行分区中运行
#SBATCH -o ./LOG/p_run.%j     ## 标准日志输出路径
#SBATCH -e ./LOG/p_run.%j     ## 错误日志输出路径
#SBATCH -t 600                ## 运行时间不超过600分钟

unset SLURM_MEM_PER_CPU       ## 取消了环境变量SLURM_MEM_PER_CPU的设置

ulimit -c unlimited           ## 核心转储文件的大小限制为无限制
ulimit -s unlimited           ## 栈大小的限制为无限制

python test1.py               ## 开始运行我的test1.py脚本了

写好这个 run_test1.sbatch 文件后在命令行输入:

sbatch test1.sbatch

就可以成功运行 test1.py 脚本了

注意:如果脚本计算量大的话,不能直接在服务器上运行python文件,如 python test1.py 而要像这样先写个sbatch文件,否则你的脚本运行会侵占登陆节点,严重的可能会被管理员封号(我就因为这样被封过)

三、总结/强调/补充

总结:气象局模式运行/自己写的脚本都可以用作业卡提交的方式在服务器完成;
强调:脚本计算量大的话不能直接在服务器上运行,必须先用作业卡分配节点,否则占用登陆节点可能被导致封号;
补充:该文档给出的例子是串行处理,适用于有严格依赖关系的任务;而并行处理则用于可分解的大规模计算问题。(串行计算好处是确保每个任务按顺序执行,避免数据冲突和错误;但是如果任务之间没有依赖关系,并且对响应时间有较高要求,比如需要进行大数据处理或复杂计算任务时,就可采取并联计算)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值