나는 약 일주일 동안 내 머리를 잡아 당겨 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