小集群上SGE作业系统初探

本文介绍了在小规模集群上使用SGE作业系统进行任务管理的基本流程和常用命令,包括提交作业、查询状态和删除作业的指令。同时,通过与PBS系统的对比,展示了如何在SGE环境中编写和提交PBS脚本,以便更好地管理和优化计算任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学校分配了一个小集群帐来优化应用,需要通过SGE作业管理系统提交作业到计算节点。第一次接触SGE,从网上选摘一些基本用法,并将自己使用过程中的所遇到的问题罗列出来并给出相应的解决方案。

一、基本用法

  • SGE工作流程:
  1. 接受用户投放的任务
  2. 在任务运行以前,将任务放到一个存储区域
  3. 发送任务到一个执行设备,并监控任务的运行
  4. 运行结束写回结果并记录运行日志
  • 常用的SGE命令:
1. 投递任务到指定队列all.q
    方法一: qsub -cwd -l vf=*G -q all.q *.sh
    方法二: qsub -cwd -S /bin/bash -l vf=*G -q all.q *.sh
    -cwd 表示在当前路径下投递,sge的日志会输出到当前路径。
    -l vf=*G 任务的预估内存,内存估计的值应稍微大于真实的内存,内存预估偏小可能会导致节点跑挂。
    -q 指定要投递到的队列,如果不指定的话,SGE会在用户可使用的队列中选择一个满足要求的队列。
    注: 方法一和方法二都可以投递任务到指定队列,但是方法一可能会输出警告信息“Warning: no access to tty (Bad file descriptor). Thus no job control in this shell.” 这是因为SGE默认使用的是tcsh,而*.sh使用的是bash,所以应该在投递的时候指明命令解释器。若非要使用方法一的话,可以在脚本*.sh的开头加上#$ -S /bin/bash。
 
2. 投递任务到指定节点
    qsub -cwd -l vf=*G -l h=node1 *.sh
    qsub -cwd -l vf=*G -l h=node1 -P project -q all.q *.sh
    -P 参数指明任务所属的项目
 
3. 查询任务
    qstat -f 查看所有任务
    qstat -j jobId 按任务id查看
    qstat -u user 按用户查看
    任务状态:
    
    qw 表示等待状态
    Eqw 投递任务出错
    r 表示任务正在运行
    dr 节点挂了之后,删除任务就会出现这个状态,只有节点重
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值