-1
我一直在拉我的头发大约一周,以获得sbatch作业脚本提交到多个节点。我有两个带有(2)插槽(12)内核/插槽(2)线程/内核的计算节点。 我有一个简单的c程序,它可以计算斐波那契数列(没有多线程或mpi只是一个单进程单核程序)。Sbatch和srun SLURM sch
现在我有脚本fib.sh其中包含“SRUN ./fibonacci &”的30行,我做./fib.sh 1日12个工作在第一节点1时运行时,另一节点2和未来12运行休息处于等待状态,这正是我想要的。
但是当我尝试使用sbatch获得相同的行为时,所有在node1上运行的任务都不是我想要的。我使用-n1 -N2,--cpus-per-task = 1调整了#SBATCH标志,但没有得到期望的结果。我很感激,如果有人能够说明这一点。
下面是我slurm.conf的一部分,如果需要的话
# SCHEDULING
FastSchedule=1
SchedulerType=sched/backfill
SelectType=select/cons_res
SelectTypeParameters=CR_Core
NodeName=node[1-2] Sockets=2 CoresPerSocket=12 ThreadsPerCore=2 State=UNKNOWN
PartitionName=debug Nodes=node[1-2] Default=YES MaxTime=INFINITE State=UP
下面是sbatch脚本
#!/bin/bash
# SBATCH --cpus-per-task=30
#SBATCH --ntasks-per-core=1
#run ./fib 3 &
srun ./fib 3 &
srun ./fib 3 &
srun ./fib 3 &
srun ./fib 3 &
srun ./fib 3 &
srun ./fib 3 &
srun ./fib 3 &
srun ./fib 3 &
srun ./fib 3 &
srun ./fib 3 &
srun ./fib 3 &
srun ./fib 3 &
srun ./fib 3 &
srun ./fib 3 &
srun ./fib 3 &
srun ./fib 3 &
srun ./fib 3 &
srun ./fib 3 &
srun ./fib 3 &
srun ./fib 3 &
srun ./fib 3 &
srun ./fib 3 &
srun ./fib 3 &
srun ./fib 3 &
srun ./fib 3 &
srun ./fib 3 &
srun ./fib 3 &
srun ./fib 3 &
srun ./fib 3 &
srun ./fib 3 &
wait