Torque PBS: указание имени файла stdout в качестве идентификационного номера задания

По умолчанию выходные данные отправленного задания в очередь Torque будут сохранены в файл с именем вроде job_name.o658392. Что я хочу сделать, используя этот пример, так это назвать выходной файл 658392.job_name.log вместо этого.

Я знаю, что могу указать имя выходного файла, написав строку #PBS -e filename в верхней части моего сценария, и даже можно использовать такие переменные, как $PBS_JOBID в имени файла. Проблема в том, что $PBS_JOBID это не просто число, а выглядит как 658392.some.very.long.host.name.

Я пытался использовать ${PBS_JOBID/.*}, который должен относиться только к числам, но проблема в том, что при этом я получаю сообщение об ошибке. Он гласит: Failed to expand destination path in data staging: /path/to/output/${PBS_JOBID/.*}.log

Знаете ли вы, как указать имя выходного файла так, чтобы это работало?


person jonaslb    schedule 27.02.2016    source источник


Ответы (1)


Если вы являетесь администратором, вы можете сделать это просто числовым идентификатором задания, установив

qmgr -c 'set server display_job_server_suffix = false'

Конечно, если вы измените этот параметр, вы захотите сделать это, когда у вас нет заданий в очереди.

Если вы обычный пользователь — я не проверял это, — но я считаю, что если вы добавите переменную в среду задания, вы сможете использовать эту переменную в выходном файле задания. При желании вы можете создать переменную с именем numeric_jobid и добавить ее в среду задания, а затем использовать ее в выходном файле задания. Я считаю, что вы можете иметь следующие строки в job_script:

#PBS -j oe 
#PBS -o $numeric_jobid

потом

jobid=`qsub job_script`
numeric_id=`get just the numeric id from $jobid`
qalter $jobid -v numeric_id=$numeric_id

EDIT: вы можете сохранить шаг следующим образом:

qalter -o $numeric_id.log $jobid

И я верю, что это позволит вам это сделать.

person dbeer    schedule 29.02.2016
comment
Я добавил аналогичные операторы в свой скрипт отправки (я обнаружил, что qalter может напрямую устанавливать -o и -e). Спасибо! - person jonaslb; 02.03.2016
comment
Я смущен тем, что вы можете сохранить пошаговое редактирование. Похоже, что qalter -o $numeric_id.log $jobid можно использовать вместо qalter $jobid -v numeric_id=$numeric_id, но для обеих стратегий требуется 3 строки кода. Я что-то пропустил? Спасибо. - person Josh; 28.12.2020