Как объявить переменную в командном файле Slurm и использовать ее в мультипрограммном файле conf?

В моем текущем проекте у меня есть проблема слишком длинных команд в slurm multiprog conf (ограничение в 256 символов).

Чтобы обойти это, я хотел бы определить переменные (пути, пользовательские данные, имена файлов) в пакетном файле и использовать их в конфигурационном файле multiprog.

Тетя Гугл и довольно спартанская документация не давали мне подсказок. Я изучал использование переменных окружения, но не нашел способа установить свои собственные.

Есть намеки?

1 ответ

Решение

Командная строка в файле конфигурации multiprog execредактировал, а не анализировал с Bash, так что вам нужно явно вызывать оболочку Bash.

Например:

$ export VAR=VALUE

Я установил VAR вар в среде со значением VALUE и используйте следующий файл conf для иллюстрации:

$ cat multi.conf
0   echo $VAR
1   bash -c 'echo $VAR'

Задача 0 будет просто exec'в то время как задача 1 будет сначала проанализирована Bash. Результат:

$ srun -n2 -l --multi-prog multi.conf
0: $VAR
1: VALUE

Taks 0 отображает имя переменной, а задача 1 отображает значение переменной. Но будьте осторожны, что вам нужно потратить 10 дополнительных символов.

Другие вопросы по тегам