Вставьте системные переменные в SBATCH - PullRequest
0 голосов
/ 07 июня 2018

Я хотел бы спросить вас, возможно ли передать глобальные системные переменные тегам #SBATCH.

Я хотел бы сделать что-то подобное

ФАЙЛ SBATCH

#!/bin/bash -l
ARG=64.dat
NODES=4
TASK_PER_NODE=8
NP=$((NODES*TASK_PER_NODE))

#SBATCH -J 'MPI'+'_'+$NODES+'_'+$TASK_PER_NODE
#SBATCH -N $NODES
#SBATCH --ntasks-per-node=$TASK_PER_NODE

Это не рабочая работа, поэтому я и спрашиваю вас.

1 Ответ

0 голосов
/ 07 июня 2018

Помните, что строки параметров SBATCH рассматриваются Bash как комментарии , поэтому он вообще не будет пытаться их интерпретировать.

Кроме того, директивы #SBATCH должны быть перед любой другой командой Bash , чтобы Slurm мог их обработать.

Альтернативные варианты включают установку параметров в командной строке:

NODES=4 sbatch --nodes=$NODES ... submitscript.sh

или передача сценария отправки через stdin:

#!/bin/bash -l
ARG=64.dat
NODES=4
TASK_PER_NODE=8
NP=$((NODES*TASK_PER_NODE))

sbatch <<EOT
#SBATCH -J 'MPI'+'_'+$NODES+'_'+$TASK_PER_NODE
#SBATCH -N $NODES
#SBATCH --ntasks-per-node=$TASK_PER_NODE

srun ...

EOT

В этом более позднем случае вам нужно будет запустить сценарий отправки, а не передавать его на sbatch, так как он будетзапустить sbatch сам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...