如何 运行 使用 SLURM 批量处理两个多处理程序?
How to run two multiprocessing programs in one batch using SLURM?
我有一个包含多个节点的 SLURM 集群,每个节点有 16 个 vcpus。我试过 运行 以下代码:
#SBATCH --nodes 2
#SBATCH --ntasks 2
#SBATCH -c 16
srun --exclusive --nodes=1 program1 &
srun --exclusive --nodes=1 program2 &
wait
program1
和 program2
每个需要 16cpus,我预计将分配 2 个具有 32 个内核的节点并且 program1
将在第一个节点上 运行 program2
在第二个上,但我收到以下错误消息:
srun: error: Unable to create step for job 364966: Requested node configuration is not available
如果我只使用 --nodes
和 --ntasks
键,sbatch 会分配 2 个节点和 2 个 cpu,如果我使用 --nodes
和 -c
选项,我会收到消息--ntasks
应该定义。
如果我设置 --ntasks=1
,SLURM 将 nnodes 设置为 1。
如何运行这两个程序在一个节点和 16 个 vcpus 上分批处理?
试试这个:
#SBATCH --nodes 2
#SBATCH --ntasks-per-node 16
srun --exclusive -n 16 program1 &
srun --exclusive -n 16 program2 &
wait
以下似乎有效:
#SBATCH --nodes 2
#SBATCH --exclusive
srun --exclusive --nodes=1 -c 16 --ntasks 1 prog1 &
srun --exclusive --nodes=1 -c 16 --ntasks 1 prog2 &
wait
我有一个包含多个节点的 SLURM 集群,每个节点有 16 个 vcpus。我试过 运行 以下代码:
#SBATCH --nodes 2
#SBATCH --ntasks 2
#SBATCH -c 16
srun --exclusive --nodes=1 program1 &
srun --exclusive --nodes=1 program2 &
wait
program1
和 program2
每个需要 16cpus,我预计将分配 2 个具有 32 个内核的节点并且 program1
将在第一个节点上 运行 program2
在第二个上,但我收到以下错误消息:
srun: error: Unable to create step for job 364966: Requested node configuration is not available
如果我只使用 --nodes
和 --ntasks
键,sbatch 会分配 2 个节点和 2 个 cpu,如果我使用 --nodes
和 -c
选项,我会收到消息--ntasks
应该定义。
如果我设置 --ntasks=1
,SLURM 将 nnodes 设置为 1。
如何运行这两个程序在一个节点和 16 个 vcpus 上分批处理?
试试这个:
#SBATCH --nodes 2
#SBATCH --ntasks-per-node 16
srun --exclusive -n 16 program1 &
srun --exclusive -n 16 program2 &
wait
以下似乎有效:
#SBATCH --nodes 2
#SBATCH --exclusive
srun --exclusive --nodes=1 -c 16 --ntasks 1 prog1 &
srun --exclusive --nodes=1 -c 16 --ntasks 1 prog2 &
wait