linux sbatch 提交作业

        linux系统编写程序时无可避免要把源文件编译成可执行文件,在进行运行得出结果。但在登录超级计算机等端口(linux系统),若执行文件较大可能会被软件后台查杀,无法执行得到结果。使用sbatch提交作业方法可良好解决在登录端运行程序,避免程序运行中用较大较多资源时被kill。使用sbatch作业提交的方法能很好的解决这个问题。

        sbatch提交作业时可以选择 串行(SRUN),并行(MPIRUN)运行可执行文件。

一 ,sbatch 基本参数介绍

$ cat serial.slurm #查看脚本内容

#!/bin/bash

#SBATCH -J serialtest   #指定作业名称

#SBATCH -p normal   #指定分区名称

#SBATCH -N 1#指定节点数量   

#SBATCH -n 1  #指定任务数

#SBATCH --mem=10G   #指定每节点申请的内存大小,最大 100GB

#SBATCH -D /public/home/systest/wangxh/test/sbatch    #指定工作目录

#SBATCH -o serialtest.o%j    #指定正确输出文件名称

#SBATCH -e serialtest.e%j   #指定报错信息输出文件名称

#SBATCH --gres=dcu:1    #指定使用核心环境(dcu 与 cpu 相同)

echo "Start time: `date`"   #显示开始时间

echo "SLURM_JOB_ID: $SLURM_JOB_ID"   #显示作业号

echo "SLURM_NNODES: $SLURM_NNODES"   #显示节点数

echo "SLURM_TASKS_PER_NODE: $SLURM_TASKS_PER_NODE"  #显示每节点任务数

echo "SLURM_NTASKS: $SLURM_NTASKS"   #显示总任务数

echo "SLURM_JOB_PARTITION: $SLURM_JOB_PARTITION"   #显示作业分区

srun  ./test        #此处用户需要换成自己要执行的串行程序 

(或 mpirun ./test    #此处用户需要换成自己要执行的并行程序)

echo "End time: `date`"    #显示结束时间  注 ` ` 是单反号(esc下边那个键)不是单引号

Linux date 命令 | 菜鸟教程 (runoob.com)

显示命令执行结果

echo `date`

注意: 这里使用的是反引号 `, 而不是单引号 '。

结果将显示当前运行日期。

二 ,sbatch 使用方法

1 编译成可执行文件

 例: test.c 编译成可执行文件

Gcc -o test test.c

     h5cc -o test test.c(c写的hdf5文件)

编译成功后 会多出两个文件 test  可执行文件 test.o 链接文件 以及源文件test.c

2 编写提交作业脚本

 Vi  test.slurm

3,提交

 sbatch   test.slurm

squeue 查询 已提交的作业进度

可以以次看到提交的作业编号,运行队列,名字,使用者(登录ID),状态(CG 代表完成,R 执行中) 运行时间 ,等信息。

4 查看结果

提交作业运行成功之后,可以使用 ls 命令查看 test.o test.e 文件 

        test.o  输出文件  可在里边查看程序结果

        test.o  报错文件  程序运行错误提示,没有错误时为空

提交作业脚本举例:vi test.slurm

#!/bin/bash

#SBATCH -J h5_group

#SBATCH -p normal

#SBATCH -N 1

#SBATCH -n 1

#SBATCH --mem=1G

#SBATCH -D /public/home/xxx/xxx/HDF5/h5_test

#SBATCH --gres=dcu:1

#SBATCH -o h5_group.o%j

#SBATCH -e h5_group.e%j

echo "Start time: `date` "

echo "SLURM_JOB_ID:$SLURM_JOB_ID"

echo "SLURM_NNODES:$SLURM_NNODES"

echo "SLURM_TASKS_PER_NODE:$SLURM_TASKS_PER_NODE"

echo "SLURM_NTASK:$SLURM_NTASK"

echo "SLURM_JOB_PARTITION:$SLURM_JOB_PARTITION"

srun ./h5_group

(mpirun ./test)

echo "End time: `date`" 

  • 6
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值