Python 如何使用PBS队列系统提交大量小作业

Python 如何使用PBS队列系统提交大量小作业,python,bash,perl,process,pbs,Python,Bash,Perl,Process,Pbs,我经常需要使用PBS队列系统运行大量的小作业(运行几分钟)。这些作业使用相同的脚本处理不同的输入,并且通常需要不同的时间 因为作业数量太多,PBS队列无法很好地处理它。而且,由于不同的工作需要不同的时间,使用pbsdsh效率不高 因此,理想的解决方案是将一定数量的作业(例如100个小作业)包装成一个作业。这一个作业可以提交到具有16个核心的节点。在这个节点上,16个进程(对应于16个小作业)在每个核心上并行运行。一旦一个进程在一个核心上完成,新进程就会在该核心上运行。如果我能做到这一点,它将大大

我经常需要使用PBS队列系统运行大量的小作业(运行几分钟)。这些作业使用相同的脚本处理不同的输入,并且通常需要不同的时间

因为作业数量太多,PBS队列无法很好地处理它。而且,由于不同的工作需要不同的时间,使用pbsdsh效率不高

因此,理想的解决方案是将一定数量的作业(例如100个小作业)包装成一个作业。这一个作业可以提交到具有16个核心的节点。在这个节点上,16个进程(对应于16个小作业)在每个核心上并行运行。一旦一个进程在一个核心上完成,新进程就会在该核心上运行。如果我能做到这一点,它将大大减少作业数量(100倍),并且不会浪费任何计算时间

有人对此有什么建议吗

谢谢。

可能非常适合你的情况。查看
--cluster
-j N
选项的文档。当您使用
-j N
选项运行
snakemake
时,它一次只提交N个作业。然后,当每个作业完成时,它将开始一个新的作业


p

您能否添加一些示例输入作业以了解明确的要求作业数组是否有帮助?你用的是哪个版本的PBS?@DmitriChubarov:没有。实际上我一直用作业数组。当工作数量巨大时,PBS工作不太好。是扭矩吗?如果是的话,解决这个问题的一个简单方法就是升级。Torque 4.2.10、5.0.2或5.1.1都比2.5.5处理的作业多得多,2.5.5有一个单线程服务器。