Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何在作业提交期间动态选择PBS队列_Bash_Shell_Scripting_Job Scheduling_Pbs - Fatal编程技术网

Bash 如何在作业提交期间动态选择PBS队列

Bash 如何在作业提交期间动态选择PBS队列,bash,shell,scripting,job-scheduling,pbs,Bash,Shell,Scripting,Job Scheduling,Pbs,我在远程集群中运行许多小型计算作业,作业提交由PBS管理。通常,在PBS bash脚本中,我指定要通过命令提交作业的队列 PBS-q 我需要选择的作业队列取决于特定队列上的负载。每次提交作业之前,我都会通过终端上的命令对此进行分析 qstat-q 它为我提供了如下输出 Queue Memory CPU Time Walltime Node Run Que Lm State ---------------- ------ -------- -------- ---- -

我在远程集群中运行许多小型计算作业,作业提交由PBS管理。通常,在PBS bash脚本中,我指定要通过命令提交作业的队列

PBS-q

我需要选择的作业队列取决于特定队列上的负载。每次提交作业之前,我都会通过终端上的命令对此进行分析

qstat-q

它为我提供了如下输出

Queue            Memory CPU Time Walltime Node  Run Que Lm  State
---------------- ------ -------- -------- ----  --- --- --  -----
queue1           --      --    03:00:00   --    0   2 --   E R
queue2           --      --    06:00:00   --    8   6 --   E R
我想根据两个约束通过作业脚本自动选择队列

所选队列的walltime必须大于指定的作业时间。作业时间通过命令PBS-l walltime=02:30:00指定。 队列在Que中必须有最少数量的作业,如上面的输出所示。
我很难确定我需要在终端中使用哪些工具来帮助我自动化队列选择

您可以将您的qsub提交封装在另一个脚本中,该脚本将运行qstat-q,解析输出,然后根据请求的walltime和每个队列中有多少活动作业来选择队列。然后脚本可以提交作业并将-q添加到qsub命令的末尾

但是,您似乎正在手动尝试执行调度器(使用适当的策略)为您所做的一些操作。为什么需要动态切换队列?更好的设置是队列基本上对作业进行分类(就像您已经在使用walltime一样),然后允许调度器适当地运行作业。用户需要仔细选择队列的任何设置对我来说都有点可疑