Есть ли способ установить размер массива заданий сценария slurm на основе значения в самом сценарии? - PullRequest
0 голосов
/ 21 марта 2020

Мои сценарии обычно выглядят примерно так:

#!/bin/bash
#SBATCH --job-name=test
#SBATCH --array=0-10

myarray=($(seq 0 1 10))

echo ${myarray[$SLURM_ARRAY_TASK_ID]}

Как мне сделать так, чтобы параметр --array был установлен на основе размера myarray, предполагая, что myarray является входным от пользователя?

1 Ответ

1 голос
/ 21 марта 2020

Невозможно установить его с помощью команды, расположенной в самом скрипте. Помимо комментариев #SBATCH, скрипт действительно интерпретируется только при запуске задания, и в то время параметр --array должен быть уже установлен.

Один вариант si, чтобы пользователь просто установил * Параметр 1005 * из командной строки при отправке:

sbatch --array=0-10 submit_script.sh

или установите переменную SBATCH_ARRAY_INX env, что эквивалентно.

Вы можете создать скрипт-обертку или функцию Bash создать правильную командную строку для отправки из ввода, предоставленного пользователем любым удобным для него способом.

...