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



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

因为作业的数量非常大,PBS队列无法很好地处理它。因为不同的任务需要不同的时间,所以使用pbsdsh效率不高。

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

有人有什么建议的解决方案吗?

谢谢。

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

p

最新更新