在已登录的节点上运行 slurm 作业

在已登录的节点上运行 slurm 作业

是否可以在已登录的集群节点上运行 slurm 作业?假设我已经登录节点:

casade01
casade02
casade03

这样我就不需要排队等候了。如果重要的话,我可以 ssh 到特定节点,例如ssh user@casacde01.然后我可以登录到我指定为“头”节点的节点,然后说“好吧,在 casacde02 和 casacde03 上运行此代码吗?”

我在看这个堆栈交换帖子它给出了-wsbatch 的标志。但我需要 sbatch 还是其他东西?

如果我登录到单个节点并运行某些内容,那么它只会在该节点上运行,因此我需要调用 slurm 来安排并行程序以某种方式在所有当前登录的节点上运行。

答案1

我并不完全清楚你想做什么,但我会做出一些假设并尝试给出答案。我会将您提到“调试代码和/或交互运行”的评论作为您尝试执行的操作的基础(您可能希望将其添加到您的问题中)。

如果您愿意在队列中等待作业的初始分配,但随后能够在作业启动后进行交互式调试,那么可以使用 SLURM 命令来执行此操作。

例如,如果您需要 3 个节点来调试代码,您可以使用 slurm 命令,salloc -N 3该命令(取决于您的配置)将为您分配 3 个节点,可能(再次取决于 slurm 配置)在这些节点之一上给您提示,然后您可以使用 srun 来运行并行代码。您可以继续运行 srun 命令,直到完成调试(或直到时间用完)。

现在假设您想要三个特定节点,您可以使用相同的 salloc 命令,但添加--nodelist=casade01,casade02,casade03到命令中。

但是,如果您已经登录到这三个节点(例如使用 ssh,而不是在 slurm 内),并且您想专门使用这三个登录会话来运行您的命令,那么您应该意识到您可能会干扰其他作业slurm 正在安排这些。通常,slurm 配置的设置使您无法在不使用 slurm 命令的情况下直接登录计算节点,但在您的设置中似乎并非如此。 slurm srun 命令可能(取决于您的设置)使用某种类型的 MPI 来运行并行代码。您可以直接使用 mpi 命令来运行代码。如果您不熟悉用于执行代码的 MPI 命令(例如 mpiexec),那么我不会采取这种方法,特别是在 salloc 方法有效的情况下。

相关内容