2017-04-15 74 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 
相關問題