当前,我有一个驱动程序,该程序运行“有效负载”程序的数千个实例,并对输出进行一些后处理。驱动程序当前使用shell()函数从多个线程直接调用有效负载程序。 shell()函数在当前工作目录中执行一条命令,阻塞直到该命令运行完毕,然后返回该命令发送到stdout的数据。这在单个多核计算机上运行良好。我想修改驱动程序,以便将qsub作业提交到大型计算集群,以获得更多的并行性。

有没有办法让qsub命令将其结果输出到stdout而不是文件和块,直到作业完成?基本上,我希望它的行为尽可能类似于命令的“正常”执行,以便我可以对驱动程序进行尽可能少的修改就可以并行化到集群。

编辑:我认为所有的网格引擎都非常标准化。如果不是,那很重要,我正在使用Torque。

最佳答案

您没有提到您使用的是什么排队系统,但是SHE支持qsub的'-sync y'选项,这将导致它阻塞直到作业完成或退出。

关于performance - 使qsub块直到作业完成?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5982857/

10-10 05:25