我试图使用Snakemake来处理高性能HPC上RNASeq管道的运行,使用SLURM来调度作业。我读到Snakemake本机支持使用snakemake --cluster在集群上使用SBATCH调度作业,但是这会创建一个CATC-22:
如果从登录节点运行snakemake --cluster,则它生成的Snakemake进程将继续在登录节点上运行,直到管道停止运行为止,这会降低登录节点的性能并违反HPC集群的规则。
如果从计算节点运行snakemake --cluster,则需要从交互会话内部和计算节点上分发SBATCH命令,而集群规则规定必须仅从登录节点发送这些命令。
是否有任何方法可以使用Snakemake来处理SLURM管理的集群上的并行化,而不是在登录节点上运行任何长期进程,以及( 2)从登录节点分配所有作业?我天真的想法是在计算节点上运行Snakemake,然后在发出SBATCH命令之前返回到登录节点,但我不知道这是否可能。
提前谢谢您的时间:)
发布于 2022-08-05 17:42:44
在登录节点上运行snakemake不太可能导致问题,因为所有这些过程都是定期检查作业状态(假设本地规则不是资源密集型的)。可以肯定的是,我们可以向集群支持小组进行检查(我做了,他们说很好)。
发布于 2022-08-08 16:11:56
我将回应说,一旦开始运行,主要的snakemake进程就不需要计算或内存密集型。如果您关心的是淹没资源,运行nice snakemake将确保其他进程获得优先级。尽管如此,我还是听说过集群,其中基本上不允许在head节点上执行命令,并且执行策略。如果sys管理员不愿意破例,您应该问他们如何从工作节点提交作业;您肯定不是组织中唯一使用工作流管理器的人。有些集群允许直接提交sbatch,但您可能还必须返回到登录节点。
https://stackoverflow.com/questions/73253447
复制相似问题