我在 Scientific Linux 集群上运行了一项大型计算。目前,我有超过 600 个作业处于队列中,等待处理器时间,而一些作业正在运行。
我正在尝试使用卡尔特命令处理一些空闲但已安排好的作业。我想将它们安排到稍后的时间,以便其他用户可以跳过部分队列,这有点像礼貌行为。这可行吗?
例如,JOBNAME292399
当前处于空闲状态,计划在队列中有空位时运行。
但如果我跑步qalter -a 10051000 292398
然后接着跑,qrerun 292398
我就会得到qrerun: Request invalid for state of job 292398.euler
。
从 qalter 文档来看,我认为 10051000 指的是明天(10 月 5 日上午 10 点),但也许我误解了什么?
如果我的方法不对,请告诉我。我主要想找的是一个易于编写脚本的命令,这样我就可以修改排队任务的运行时间。如果我能让 qalter 工作,它似乎非常适合这些目的。我宁愿避免运行 qdel 并重新 qsubbing 计算,因为在哪些任务需要重新启动(哪些任务不需要重新启动)方面存在记账问题。我想避免这种记账。
通过谷歌搜索,我注意到一些 qalter 命令有相当不同的日期格式,但上面的出现据我从 man 文档中了解,这是正确的。
任何帮助,将不胜感激。
答案1
用于qhold
暂停某项作业。当您准备运行该作业时,使用qrls
释放该作业。您可以轻松为此目的创建 cron 脚本。
查看PBS 专业用户指南和TORQUE 管理员指南(TORQUE 与 PBS 基本兼容) 了解更多信息。
编辑:您qalter -a
也可以使用,但不要使用qrerun
:作业未运行,并且在命令中指定的日期和时间之后才有资格执行qalter -a
,因此qrerun
返回错误。