我想通过Sun Grid Engine上的qsub提交作业(现在是:Oracle Grid Engine?)。我不希望使用-sync yes选项或qrsh,因为我希望我的控制程序是单线程的,并且能够一次启动多个作业。这些选项会阻止我的控制程序的线程。
但是,我想收到我发布的进程的退出状态。从手册页中,似乎无法在不阻塞我的线程的情况下获取此代码。如果没有修改我正在启动的作业以将其退出代码打印到stdout,是否有任何方法可以获得此状态?
答案 0 :(得分:11)
答案是'qacct -j'。将作业历史摘要打印到stdout,然后可以解析退出状态,开始和结束时间以及各种其他信息。
必须正确配置SGE才能使此命令起作用。
答案 1 :(得分:2)
如果您在应用程序中提交作业,那么使用DRMAA API最简单,最快速(更快,然后使用qsub提交)方式(以及稍后获得退出状态)。这个简单的API在很长一段时间内都可以在C和Java中的Sun Grid Engine中使用。 Univa Grid Engine(Grid Engine的商业继承者)和Sun Grid Engine forks也提供必要的库。由于它是一个开放标准,您甚至可以提交给Condor / SLURM等其他DRMS,而无需更改您的程序。可以使用GO,Python或TCL(以及其他语言)的语言绑定。
请参阅: http://www.gridengine.eu/mangridengine/htmlman3/drmaa_wait.html
更多信息和Go(#golang)DRMAA语言绑定您可以使用的示例 在这里找到: http://www.gridengine.eu/programming-apis
干杯
丹尼尔
www.gridengine.eu