Почему slurm назначает больше задач, чем я просил, когда я «собираю» несколько заданий с помощью файла .sh? - PullRequest
0 голосов
/ 10 января 2019

Я отправляю несколько искровых заданий в режиме кластера, которые прекрасно работают, когда я делаю это одно за другим со спецификациями ниже sbatch.

#!/bin/bash -l

#SBATCH -J Spark
#SBATCH --time=0-05:00:00   # 5 hour
#SBATCH --partition=batch
#SBATCH --qos qos-batch
###SBATCH -N $NODES
###SBATCH --ntasks-per-node=$NTASKS
### -c, --cpus-per-task=<ncpus>
###     (multithreading) Request that ncpus be allocated per process
#SBATCH -c 7
#SBATCH --exclusive
#SBATCH --mem=0
#SBATCH --dependency=singleton

Если я использую модуль запуска для отправки одного и того же задания с разными номерами узлов и задач, система запутывается и пытается назначить в соответствии с $ SLURM_NTASK, что дает 16. Однако я спрашиваю, например, только 1 узел, 3 задачи.

#!/bin/bash -l

for n in {1..4}
do
    for t in {3..4}
    do
        echo "Running benchmark with ${n} nodes and ${t} tasks per node" 
        sbatch -N ${n} --ntasks-per-node=${t} spark-teragen.sh
        sleep 5
        sbatch -N ${n} --ntasks-per-node=${t} spark-terasort.sh
        sleep 5
        sbatch -N ${n} --ntasks-per-node=${t} spark-teravalidate.sh
        sleep 5
    done
done

Как я могу исправить ошибку, указанную ниже, не позволяя slurm назначать странное количество задач на узел, превышающее ограничение.

Ошибка:

srun: Warning: can't honor --ntasks-per-node set to 3 which doesn't match the
requested tasks 16 with the number of requested nodes 1. Ignoring --ntasks-per-node.
srun: error: Unable to create step for job 233838: More processors requested than
permitted
...