Вы здесь

Запуск массива задач

Массив задач, это средство быстрого формирования очень большого задач, без повышения нагрузки на очередь задач и планировщик.

При формировании массива указывается список индексов, либо стартовый индекс, максимальное значение индекса и его шаг. Запускаемая задача может проверить в переменных окружения параметры массива и назначенное текущему экземпляру значение индекса.

# Перебираем индексы от 0 до 31 включительно
$ sbatch --array=0-31 -N1 myjob

# Перебираем индексы 1, 3, 5, 7
$ sbatch --array=1,3,5,7 -N1 myjob

# Перебираем индексы от 0 до 7 включительно  с шагом 2
$ sbatch --array=1-7:2 -N1 myjob

# Дополнительно после символа % можно указать максимальное количество экземпляров, считающихся одновременно
sbatch --array=0-31%5 -N1 myjob

Например, задача, запущенная командой sbatch --array=1-3 -N1 myjob, увидит следующий набор переменных окружения:

SLURM_ARRAY_TASK_ID=3
SLURM_ARRAY_TASK_COUNT=3
SLURM_ARRAY_TASK_MAX=3
SLURM_ARRAY_TASK_MIN=1

Далее можно сформировать параметры используя значения переменной SLURM_ARRAY_TASK_ID. Например, программа myjob может прочитать нужную строку из файла параметров и передать её дальше в качестве аргументов для вычислений:

#!/bin/bash

PARAMS=$(head -n $SLURM_ARRAY_TASK_ID params.txt | tail -n1)
./exefile $PARAMS
Яндекс.Метрика