其他类似报错
queue instance " " dropped because it is temporarily not available
queue instance " " dropped because it is disabled
报错显示:
$qstat -j
queue instance "peteris.q@sge00" dropped because it is full
解释:sge由于过载或已满而丢弃所有队列
解决回答:
似乎您已达到队列在任何给定时间可以处理的活动作业数量的实际限制。我无法确定SGE定义的最大值在哪里,但似乎可能是:
max_jobs
Sun Grid Engine中同时允许的活动(未完成)作业的数量由此参数控制。大于0的值定义极限。默认值0表示“无限制”。如果作业提交超出了max_jobs限制,则提交命令将退出,退出状态为25,并显示相应的错误消息。更改max_jobs将立即生效。此值仅是全局配置参数。执行主机本地配置不能覆盖它。
来自:http : //gridscheduler.sourceforge.net/htmlman/htmlman5/sge_conf.html?pathrev=V62u5_TAG
如果这是正确的,那么值是无限的。但是,SGE可能无法很好地管理约100万个活跃工作,因此您可能会遇到这个问题。我建议您使用作业数组,因为这是此类作业的目的,即管理和运行许多几乎相同的任务。
SGE中有许多在线资源可用于作业阵列,例如:
http://wiki.gridengine.info/wiki/index.php/Simple-Job-Array-Howto
http://talby.rcs.manchester.ac.uk/~ri/_linux_and_hpc_lib/sge_array.html
https://wiki.duke.edu/display/SCSC/SGE+Array+Jobs
如果您根据每个任务的特定要求编辑问题,我们很乐意为您提供进一步的帮助。例如,大约一百万个任务中的每一个是否都需要一个或多个参数作为输入?
maxjobs
要0
解决这个问题了吗?或者,您已经设置maxjobs
为0
问题仍然存在? – 文斯 18年 6月4日12:53Sun Grid Engine作业阵列
1。
为什么?
假设您希望运行大量在很大程度上相同的作业:您可能希望使用不同的参数或参数多次运行同一程序;或处理一千个不同的输入文件。可以编写一个Perl脚本来生成所有必需的qsub文件,并编写一个BASH脚本来提交所有这些文件。但是,这不是您的时间的好用,它会对集群上的Submit(登录)节点造成可怕的影响。
使用SGE阵列作业会更好!
2。
什么?
SGE阵列作业可以描述为内置有for循环的作业。这是一个简单的示例:
通过计算,这等效于1000个单独的队列提交,其中SGE_TASK_ID的取值为1、2、3。。1000,其中输入和输出文件由ID索引。然而:略有变化-在单独的目录(文件夹)中运行每个作业:
3。
更多
有关SGE作业阵列的更多信息,请访问:
4。
更通用的For循环
SGE_TASK_ID 不必从1开始;增量不得为1。例如:
#$ -t 100-995:5
因此SGE_TASK_ID的取值为100、105、110、115 ... 995。
顺便提及,例如,在上限不等于下限加上增量的整数倍的情况下,
#$ -t 1-42:6
SGE自动更改上限,即
5,
相关环境变量
可以使用另外三个自动创建的环境变量,如以下简单的qsub脚本所示:
6。
输入文件列表
可以偷偷摸摸-假设我们有一个输入文件列表,而不是由后缀显式索引的输入文件:
来源:
http://talby.rcs.manchester.ac.uk/~ri/_linux_and_hpc_lib/sge_array.html