qsub命令

qsub 是一种常用的作业提交命令,通常在使用诸如 PBS(Portable Batch System)或 SGE(Sun Grid Engine)等集群管理系统时使用。以下是关于 qsub 的详细解释:

一、基本功能
qsub 主要用于将作业提交到集群的作业队列中,以便集群系统安排该作业在适当的计算节点上运行。当你使用 qsub 提交作业时,你需要提供一个脚本或命令,集群系统会根据资源可用性和调度策略来执行该作业。

二、常用选项

  • -N <jobname>:为作业指定一个名称,方便后续管理和识别作业。

    bash

    qsub -N my_job script.sh
    
  • -l <resource_list>:指定作业所需的资源,例如处理器数量、内存大小、运行时间等。

    bash

    qsub -l nodes=1:ppn=4,mem=8gb,walltime=1:00:00 script.sh
    

    这表示该作业需要 1 个节点,每个节点使用 4 个处理器,需要 8GB 内存,最长运行时间为 1 小时。
  • -q <queue>:指定作业提交到哪个队列中。不同队列可能有不同的资源限制和调度策略。

    bash

    qsub -q batch script.sh
    
  • -o <output_file> 和 -e <error_file>:分别指定作业的标准输出和标准错误输出的文件。

    bash

    qsub -o output.log -e error.log script.sh
    

三、提交脚本示例
假设你有一个名为 my_script.sh 的脚本,内容如下:

bash

#!/bin/bash
echo "Hello, this is my script running on the cluster"
sleep 30
echo "Script completed"

你可以使用 qsub 命令提交该脚本:

bash

qsub my_script.sh

四、使用 qsub 提交更复杂的任务
如果你需要在作业中使用特定的软件环境或模块,可以在脚本中加载所需的模块。例如,在使用一个需要 Python 环境的作业时:

bash

#!/bin/bash
#PBS -N python_job
#PBS -l nodes=1:ppn=1,mem=2gb,walltime=0:10:00
#PBS -o python_job_output.log
#PBS -e python_job_error.log

module load python/3.8  # 加载 Python 3.8 模块
python my_python_script.py

使用 qsub 提交这个脚本:

bash

qsub python_job.sh

五、查看作业状态
在提交作业后,你可以使用 qstat 命令查看作业的状态:

bash

qstat

它会显示作业的状态,如等待(Q)、运行(R)或完成(C)等信息,以及作业的资源使用情况等。

六、作业删除
如果你想删除一个已提交但尚未运行的作业,可以使用 qdel 命令,通常需要作业的作业号,该作业号在使用 qsub 提交作业后会显示,也可以通过 qstat 查看:

bash

qdel <job_id>

七、资源限制和调度策略
不同的集群系统可能对 qsub 的选项和资源限制有所不同,以下是一些常见的限制和考虑因素:

  • 处理器数量(ppn):每个节点可使用的处理器核心数,要根据节点的硬件配置和集群策略合理申请。
  • 内存(mem):申请的内存大小应根据作业的实际需求,申请过多会浪费资源,申请过少可能导致作业失败。
  • 运行时间(walltime):估计作业所需的运行时间,超过申请的运行时间会导致作业被强制终止。

使用 qsub 可以方便地将作业提交到集群系统中,让集群系统自动调度和管理计算资源,提高计算效率,尤其是对于需要大量计算资源或长时间运行的任务。在使用 qsub 之前,需要熟悉所在集群的相关文档和政策,以确保合理使用资源并避免不必要的作业失败。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值