Slurm: планирование массивов заданий на минимальное количество узлов - PullRequest
0 голосов
/ 24 октября 2019

Я использую Slurm 19.05.2 только с облачными узлами. Я указал

SelectType              = select/cons_tres
SelectTypeParameters    = CR_CORE_MEMORY,CR_CORE_DEFAULT_DIST_BLOCK

Чтобы убедиться, что узел полностью используется перед выделением второго узла.

Кажется, он хорошо работает с заданиями, которые имеют много задач. Если у меня есть 8 узлов, каждый из которых имеет 16 ядер, и я отправляю задание с 8 задачами, а для каждой задачи требуется 2 ядра, это будет запланировано на один узел. Например, скрипт:

#!/bin/bash
#
#SBATCH --job-name=batch
#SBATCH --output=o_batch.%A.%a.txt
#
#SBATCH --ntasks=8
#SBATCH --time=10:00
#SBATCH --cpus-per-task 2
#SBATCH --mem-per-cpu=100

srun hostname

будет выводить

node-010000
node-010000
node-010000
node-010000
node-010000
node-010000
node-010000
node-010000

Если я укажу массив заданий с --array=1-8 (--ntasks=1), все задания массива будут запланированы надругой узел (даже если один узел может соответствовать всем требованиям задания)

#!/bin/bash
#
#SBATCH --job-name=array
#SBATCH --output=array.%A.%a.txt
#
#SBATCH --ntasks=1
#SBATCH --time=10:00
#SBATCH --mem-per-cpu=100
#SBATCH --array=1-8

srun hostname

будет выводить

node-010000
node-010001
node-010002
node-010003
node-010004
node-010005
node-010006
node-010007

Есть ли способ настроить slurm для работы с массивами так же, как с задачей?

...