Slurm - запуск нескольких задач на одном узле - PullRequest
1 голос
/ 09 марта 2020

Предположим, я хочу запустить программу с 100 различными входными аргументами. Вот что я бы сделал на своем ноутбуке, например:

for i in {1..32}
    do
    ./test.sh $i
done

, где test. sh - просто фиктивная программа

#!/bin/bash
name=$(hostname)
touch $1.test
echo $name >> $1.test
echo $name
sleep 5

если я запусту программу, она займет ок. 160se c. Я пытаюсь запустить задание Slurm на кластере из 40 узлов с 4 процессорами в каждом с моим test.slurm:

#! /bin/bash
#
#SBATCH --ntasks=4
start=`date +%s`
for i in {1..32}
do
   srun -l -n1 -N1 -c1 ./test.sh $i &
done
wait
end=`date +%s`
runtime=$((end-start))
echo $runtime

я получаю время выполнения 190 секунд вместо ожидаемых ~ 40, поэтому нет многопроцессорной обработки, но если я укажите 2 узла с --nodes = 2 или более 4 задач ie должен быть выделен второй узел, до 90 секунд

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...