2017-04-15 40 views
-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 

回答

2

如果我理解正确的话,你想运行的fib 30个完全相同的副本? (首先,你不希望30条srun线(或&) - SLURM处理多个副本。)

如果是这样的话,你可能只是想这样的事情在你提交的脚本:

#!/bin/bash 
#SBATCH --ntasks=30 
srun ./fib 3 
相关问题