Доступ к переменным, установленным в заголовке скрипта задания SGE - PullRequest
0 голосов
/ 07 сентября 2018

Допустим, у меня есть скрипт задания, в котором я запрашиваю 4 ядра и устанавливаю ограничение памяти в заголовке:

#! /bin/bash                                                                                                                                                               
#$ -pe mpi 4                                                                                                                                                              
#$ -l h_vmem=128G                                                                                                                                                         

echo "echo using 4 cores and 128 memory per core"

Есть ли в любом случае доступ к этим значениям, что-то вроде $SGE_PE_MPI, чтобы яМожно ли использовать количество ядер позже в сценарии, не кодируя его в нескольких местах?

1 Ответ

0 голосов
/ 07 сентября 2018

Программа может считывать значения сама с себя. Пример кода:

#! /bin/bash
#$ -pe mpi 4
#$ -l h_vmem=128G

readonly sge_pe_mpi=$(sed -n 's/^#\$ -pe mpi \(.*\)/\1/p' -- "$0")
readonly sge_l_h_vmem=$(sed -n 's/^#\$ -l h_vmem=\(.*\)/\1/p' -- "$0")

printf 'using %s cores and %s memory per core\n' \
    "$sge_pe_mpi" "$sge_l_h_vmem"

Пример вывода:

using 4 cores and 128G memory per core

Обратите внимание, что приведенный выше код просто иллюстрирует идею. Это очень деликатно. Любое изменение в формате специальных комментариев (например, лишние пробелы) может нарушить его, как и повторные комментарии.

...