目前,我有一个驱动程序,它运行数千个“有效负载”程序实例并对输出进行一些后处理。驱动程序当前使用shell()
函数从多个线程直接调用有效负载程序。该shell()
函数在当前工作目录中执行一个命令,阻塞直到命令完成运行,并返回该命令发送到标准输出的数据。这在单个多核机器上运行良好。我想修改驱动程序以将qsub
作业提交到大型计算集群,以获得更多并行性。
有没有办法让qsub
命令将其结果输出到标准输出而不是文件并阻塞直到作业完成?基本上,我希望它尽可能地像“正常”执行命令一样,这样我就可以在尽可能少地修改我的驱动程序的情况下并行化到集群。
编辑:我认为所有的网格引擎都非常标准化。如果他们不是并且这很重要,我正在使用 Torque。