0

在阅读了 qstat 和 sge_qstat 手册之后,我仍然不知道我可以使用什么方法来以编程方式解析我的 SGE 6.1 系统中的默认队列的名称:也就是说,作业所在的队列的名称如果我执行 qsub 命令,将提交。

我有一个空文件:

~/.sge_qstat    # actually the file doesn't exist

而这个文件只包含一个'-u *':

$SGE_ROOT/$SGE_CELL/common/sge_qstat

我希望有一种方法能够以编程方式获取默认情况下将提交作业的队列的名称。与此 LSF 命令中 grep 后面的名称等效的名称:

lsid 2>/dev/null | grep 'My cluster name is'

SGE有什么等价的吗?

4

2 回答 2

2

假设“默认”是指如果您没有将 -q 开关指定为 qsub 时作业将落入的队列,这很困难。

开箱即用,SGE 根本不应该有一个硬默认队列,但是默认调度程序会根据哪个队列的平均负载最低来为给定的提交(如果你没有指定一个)选择一个队列 - 这是由调度程序属性 queue_sort_method 定义(参见 sched_conf(5))。在这种情况下,您最多只能猜测。

但是,如果您可以保证将在提交者的本地 .sge_request 文件或全局 $sge_root/$cluster/common/sge_request 文件中设置真正的默认队列(该文件定义了 qsub 的默认开关,请参阅 sge_request(5)) ,您当然可以从这些中解析出 -q 开关。

于 2013-04-25T22:06:46.700 回答
0

制定默认队列的另一种方法是发送一个虚拟请求。

qrsh -w p -verbose -verify | grep hard_queue_list

请注意,该值可以是逗号分隔的列表。即 hard_queue_list: all.q,some.q

第一个是系统默认值,第二个是用户默认值。

于 2018-09-25T07:43:37.853 回答