Этот вопрос возникает при попытке найти скрипт в моем вычислительном кластере хоста, который может обеспечить более удобное управление квантово-химическими расчетами на Gaussian.руководство пользователямоего хоста дает следующее:
Gaussian 09 предлагает альтернативный способ передачи программе значений для количества процессоров, объема памяти и дискового пространства для использования. Вместо указания %mem, %nprocshared и Maxdisk во входном файле, вы можете посчитать более привлекательным использование переменных окружения Gaussian $GAUSS_PDEF, $GAUSS_MDEF и $GAUSS_RDEF. Использование этих переменных позволяет преобразовывать значения заданий PBS для ncpus, mem и jobfs в переменные окружения, читаемые Gaussian 09. Мы предлагаем вам попробовать скрипт bash 'g09.sh' вместо 'g09' в командной строке скрипта PBS. Скрипт выполняет это преобразование для вас и запускает программу, сообщая ей о настройках PBS. Синтаксис использования скрипта прост:
К сожалению, похоже, скрипт больше не существует в кластере (и я не могу полностью это проверить, поскольку как пользователь мне не разрешен доступ в /root, хотя я могу фактически получить доступ к папке / и проверить /apps и /modules, в которых хранятся программное обеспечение и модули среды).
Это значит, что мне придется основываться на этой информации, пытаясь написать свой собственный сценарий, который выполняет ту же задачу для меня. Типичный PBS, используемый хостом, выглядит так:
#!/bin/bash
#PBS -l walltime=20:00:00
#PBS -l ncpus=4
#PBS -l mem=4GB
#PBS -l jobfs=100GB
#PBS -l software=g09
#PBS -l wd
module load gaussian/g09e01
g09 < inputdeck > outputfile 2>&1
Поэтому, как указано вРуководство пользователя PBS Professional, все, что с -l, — это ресурсы, которые будут выделены для выполнения задания.
Затем я попытался найти переменные окружения, которые хранят значение ресурсов mem, ncpus и jobfs, чтобы я мог экспортировать $(some gaussian environment variable)=$(some PBS environment variable correspond to the resources)
. Однако единственная переменная окружения PBS, которая хранит ресурсы, — это PBS_NCPUS, поэтому, похоже, стратегия не сработает.
Итак, как мне извлечь значения каждого типа ресурса из директив PBS, чтобы можно было сопоставить их с переменными среды Гаусса?