Cluster computing 询问如何在每个节点上启动一次脚本
我可以通过SLURM获得一个大集群。 我想在每个请求的具有指定数量内核的节点上启动脚本,例如Cluster computing 询问如何在每个节点上启动一次脚本,cluster-computing,slurm,Cluster Computing,Slurm,我可以通过SLURM获得一个大集群。 我想在每个请求的具有指定数量内核的节点上启动脚本,例如/calc。例如,在2个节点上,每个节点16个核 我从sbatch脚本开始 #SBATCH -N 2 #SBATCH --ntasks-per-node=16 srun -N 1 ./calc 2 & srun -N 1 ./clac 2 & wait 但它并没有像预期的那样工作。 我尝试了很多配置--ntask--nodes--CPU/任务,但都没有成功,我非常迷茫 我也不理解SLU
/calc
。例如,在2个节点上,每个节点16个核
我从sbatch
脚本开始
#SBATCH -N 2
#SBATCH --ntasks-per-node=16
srun -N 1 ./calc 2 &
srun -N 1 ./clac 2 &
wait
但它并没有像预期的那样工作。
我尝试了很多配置--ntask
--nodes--CPU/任务
,但都没有成功,我非常迷茫
我也不理解SLURM中任务和CPU之间的区别在您的示例中,您要求SLURM在2个节点上每个节点启动16个任务。作业结束时,slurm可能会运行8x(srun)x2节点任务 对于您的需要,您不需要特别指定想要两个节点,而不是作业必须在两个不同的节点上运行。 对于您的示例,请运行以下sbatch:
#!/bin/bash
#SBATCH --ntasks=2
#SBATCH --cpus-per-task=16
#SBATCH --hint=nomultithread
srun <my program>
#/bin/bash
#SBATCH--ntasks=2
#SBATCH——每个任务的CPU=16
#SBATCH--hint=nomultithread
斯伦
在本例中,slurm将使用16个内核运行2次程序。nomultithread是可选的,取决于集群配置。如果超线程被激活,这将是16个虚拟CPU。我发现这是一个可行的解决方案。事实证明,最重要的是定义所有参数
节点
任务
CPU
#!/bin/bash
#SBATCH -N 2
#SBATCH --ntasks-per-node=1
#SBATCH --cpus-per-task=16
srun -N 1 -n 1 -c 16 ./calc 2 &
srun -N 1 -n 1 -c 16 ./calc 2 &
wait