Как я могу получить slurm, чтобы назначить каждому узлу одну задачу? - PullRequest
1 голос
/ 11 июля 2019

Я запускаю приблизительно 400 файлов через конвейер SLURM с помощью sbatch. Когда я ставлю задачу в очередь с sbatch ./myscript.sh file_x, все файлы попадают в очередь на одном узле.

Я пробовал вариацию параметров #SBATCH в начале скрипта sbatch, но безуспешно. Вот что я пробовал до сих пор:

#!/bin/bash
#SBATCH -N 1
#SBATCH -n 60
#SBATCH -o slurm_out/output_%j.txt
#SBATCH -e slurm_error/error_%j.txt

и

#!/bin/bash
#SBATCH -n 60
#SBATCH -o slurm_out/output_%j.txt
#SBATCH -e slurm_error/error_%j.txt

и

#!/bin/bash
#SBATCH -N 1
#SBATCH -o slurm_out/output_%j.txt
#SBATCH -e slurm_error/error_%j.txt

и

#!/bin/bash
#SBATCH -o slurm_out/output_%j.txt
#SBATCH -e slurm_error/error_%j.txt

Файлы slurm_out создаются и записываются, поэтому SBATCH определенно выбирает параметры.

в отношении опции -n, в документах говорится, что по умолчанию "одна задача на узел", однако, похоже, что это не так:

-n, --ntasks = sbatch не запускает задачи, запрашивает распределение ресурсов и отправляет пакетный скрипт. Этот вариант сообщает контроллеру Slurm, что рабочие шаги выполняются в пределах выделения запустит максимум количество задач и обеспечит достаточное Ресурсы. По умолчанию это одна задача на узел, но учтите, что Опция --cpus-per-task изменит это значение по умолчанию.

Какие параметры получит одно задание на узел?

1 Ответ

1 голос
/ 11 июля 2019

Вы можете просто попробовать с --ntasks-per-node=1.Значение по умолчанию «одна задача на узел» применяется, когда количество задач не указано числом узла.В таком случае Slurm будет предполагать, что он должен создать столько задач, сколько запрошенных узлов.Что по-прежнему не означает, что каждой задаче будет назначен отдельный узел, это зависит от того, как вы запустите вычисления в сценарии отправки.

Если вам больше не нужны никакие другие задания, кроме ваших на узле, добавьте --exclusive параметр.

...