SEG相关指令及自己踩的坑

SEG相关指令及自己踩的坑参考 Sun Grid Engine SGE QuickStart StarCluster 0 93 3 documentatio SEG 概述 Sun Grid Engine SGE 需要有大量任务执行 并且 解决了需要运行很多任务 但是运行任务过多可能导致内存不足

大家好,我是讯享网,很高兴认识大家。

参考:Sun Grid Engine (SGE) QuickStart — StarCluster 0.93.3 documentation

SEG概述

Sun Grid Engine (SGE):需要有大量任务执行,并且,解决了需要运行很多任务,但是运行任务过多可能导致内存不足,线程占用过多等问题,从而导致了任务处理不是最有效的方法。

提交作业

qsub

sgeadmin@master:~$ qsub -V -b y -cwd hostname Your job 1 ("hostname") has been submitted 

讯享网

qsub -cwd -l vf=30G,num_proc=30 -P RSREA -S /bin/bash -q shux.q analysis.sh

  • -V:作业应该与执行 qsub 的 shell 具有相同的环境变量

    最好加上 -V 参数,不然可能会报错command not found
    可以在shell脚本加上#$ -V,同样能够继承当前环境

讯享网#!/bin/bash #!$ -V echo hello 
  • -b :二进制文件
  • -cwd : 在调用 qsub 的同一目录中执行;
  • -l:资源列表
  • -S:shell 路径

监控队列中的作业

sgeadmin@master:~$ qstat job-ID prior name user state submit/start at queue slots ja-task-ID ------------------------------------------------------------------- 1 0.00000 hostname sgeadmin qw 09/09/2009 14:58:00 1 sgeadmin@master:~$ 

state


讯享网

  • qw:排队等待
  • r: 正在执行

任务执行完毕后会直接被删除,qstat命令不显示该任务ID

qstat -j [job ID]

  • -j : 显示任务的详细信息
讯享网sgeadmin@master: qstat -j  ============================================================== job_number:  exec_file: job_scripts/ submission_time: Wed Sep 6 09:19:23 2023 

当前任务一直显示qw,这是为什么?
qstat -u '*' : 查看目前所有运行的任务,可能是任务过多还在排队。

文件输出

SEG执行自动创建两个文件,分别是标准输出文件和标准错误文件:hostname.e1 和 hostname.o1。e 代表 stderr,o 代表 stdout。文件扩展名末尾的数字是作业编号。

run.sh.e run.sh.o 

删除作业

qdel:删除作业

讯享网sgeadmin@master:~$ qdel 3 sgeadmin has registered the job 3 for deletion 

设置等待任务结束后进行下一个

-hold_jid ${job_id} :输入job_id等待任务完成后继续下一个

job_id=`qsub -V -b y -cwd hostname -S /bin/bash job1.sh` job_id=$(echo $job_id | awk '{print $3}') qsub -hold_jid ${job_id} -V -b y -cwd hostname -S /bin/bash job2.sh 

踩坑记录

1.谨慎在shell脚本中使用注释 组合符号#$

背景 : 运行两个shell脚本,一个脚本可以提交任务,而另一个脚本不可以,并且报错qsub: Unknown option

讯享网$qsub -cwd -S /bin/bash scripts/run.sh #Your job ("run.sh") has been submitted  $qsub -cwd -S /bin/bash scripts/run2.sh qsub: Unknown option 

原因#$符号在qsub中具有特殊含义,表示在作业脚本内部指定qsub的参数当qsub执行脚本时,它会解析以#$开头的行作为作业的指令或请求特定的资源。

用途

#!/bin/bash #$ -cwd 指定当前目录作为运行目录 #$ -N jobname 指定作业名称 #$ -l h_rt=00:30:00 指定运行时间 #$ -l h_vmem=2G 指定虚拟内存大小 #$ -o /path/to/output.log 指定标准输出文件 #$ -e /path/to/error.log 指定错误文件输出 
小讯
上一篇 2025-03-17 08:12
下一篇 2025-03-03 10:11

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/71251.html