目前,我有一个驱动程序,运行数千个“有效载荷”程序实例,并对输出进行一些后处理。驱动程序当前使用shell()
函数直接从多个线程调用有效负载程序。 shell()
函数在当前工作目录中执行一个命令,阻塞直到命令完成运行,并返回命令发送到stdout的数据。这在单个多核机器上运行良好。我想修改驱动程序,将qsub
作业提交给大型计算群集,以获得更多并行性。制作qsub块直到完成作业?
有没有办法让qsub
命令将结果输出到标准输出而不是文件和块,直到作业完成?基本上,我希望它尽可能像“正常”执行命令一样,以便我可以通过尽可能少地修改驱动程序来并行化群集。
编辑:我认为所有的网格引擎都非常标准化。如果他们不重要,我使用Torque。
您是否丧失了将输出存储在输出文件中的能力? – 2012-07-24 08:27:16
您以这种方式丢失了输出的自动存储,但您可以登录终端会话并以此方式保存输出。 – dbeer 2012-07-24 15:13:37