2017-04-15 9 views
-1

나는 약 일주일 동안 내 머리를 잡아 당겨 sbatch 작업 스크립트가 여러 노드에 제출되도록했습니다. 두 개의 계산 노드가 (2) 소켓 (12) 코어/소켓 (2) 스레드/코어 있습니다. 피보나치 시리즈를 계산하는 간단한 c 프로그램이 있습니다 (다중 스레드 또는 mpi가없는 단일 프로세스 단일 코어 프로그램).Sbatch and srun SLURM sch

이제는 30 줄의 "srun ./fibonacci &"이 들어있는 스크립트 fib.sh가 있습니다. ./fib.sh는 첫 번째 node1에서 실행되는 12 번째 작업을 실행하고 다음 12 번 작업은 다른 node2에서 실행되고 나머지는 내가 원하는 것을 기다리는 상태에 있습니다.

하지만 내가 sbatch와 동일한 동작을 시도하면 모든 작업이 node1에서 실행됩니다. -n1 -N2, --cpus-per-task = 1을 사용하여 #SBATCH 플래그로 조정했으나 원하는 결과를 얻지 못했습니다. 누군가가 이것에 대해 밝힐 수 있다면 고맙습니다. 다음은

# 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 

가 나는 당신이 fib 30 개 동일한 복사본을 실행하려면 제대로 이해 한 경우 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

입니다 필요한 경우 아래

내 slurm.conf의 일부입니다? (우선 해제, 당신은) 30 개 srun 라인 (또는 &을 원하지 않는다 - SLURM가 여러 복사본을 처리합니다.)

를이 경우, 당신은 아마 당신의 제출 스크립트에서 이런 식으로 뭔가를 원하는 :

#!/bin/bash 
#SBATCH --ntasks=30 
srun ./fib 3