gpt4 book ai didi

slurm - 使用 SLURM 的同一节点中的多个任务

转载 作者:行者123 更新时间:2023-12-04 13:21:58 36 4
gpt4 key购买 nike

我正在努力理解如何使用 SLURM 在同一节点中运行多个进程。

假设我想运行一个具有 100 个不同输入参数的程序。例如,这就是我在笔记本电脑上所做的:

for i in `seq 100`; do
./program ${i}
done

现在我可以访问具有 24 核节点的集群。所以,我想同时在 5 个节点上运行程序的 24 个实例(4 个节点上的 24 个 + 第 5 个节点上的 4 个)。

我认为提交脚本应该是这样的:
#!/bin/bash
#SBATCH -N 5
#SBATCH -n 100
#SBATCH --ntasks-per-node=24
for i in `seq 100`; do
srun ./program ${i} &
done
wait

事实证明,使用这个提交脚本, ./program为每个 i 运行多次值,即使 srun每个循环只调用一次。

到底是怎么回事?这样做的正确方法是什么?

最佳答案

默认情况下,srun将在运行中使用完整分配,所以这里是完整的 100 个任务。告诉只是使用单个核心,您需要运行

srun --exclusive --ntasks 1 ...

来自 srun manpage :

This option can also be used when initiating more than one job step within an existing resource allocation, where you want separate processors to be dedicated to each job step. If sufficient processors are not available to initiate the job step, it will be deferred. This can be thought of as providing a mechanism for resource management to the job within it's allocation.

关于slurm - 使用 SLURM 的同一节点中的多个任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50634447/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com