Установка и настройка SoftEnv на примере tb06.ngrid.ru и ПО abinit
Инсталляция
Процесс инсталляции требует подключенного RPM репозитория ГридННС (http://koji.ngrid.ru/ngrid.repo).
Установить на грид-шлюз пакеты whatami и softenv.
yum install whatami softenv
Настройка
Настройка ведётся из под root. Возьмите пример конфигурации в /usr/share/doc/softenv-1.6.2/samples и адаптируя его под свои нужды скопируете его в /etc/softenv/softenv.db. Например для tb06.ngrid.ru был взят /usr/share/doc/softenv-1.6.2/samples/softenv.db.example выкинуты куски про teragrid и добавлено:
(+abinit-6.0.3-gfortran44-nompi) {
{desc: Abinit software compiled without MPI support"}
{flags: power}
[] {
PATH /grid/software/abinit-6.0.3-gfortran44-nompi/bin
}
}
Поскольку мы не хотим устанавливать ничего на узлы кластера, необходимо отключить использование whatami в конфигурации softenv. В принципе whatami нужен только если у вас гетерогенный кластер. Например на одних узлах стоит CentOS, а на других Solaris, а вы хотите использовать один и тот же SoftEnv тег для подключения в разных системах, разных сборок пакета. В принципе вместо /usr/bin/whatami можно использовать любую утилиту идентификации системы. Мы для простоты сделаем так:
- в /etc/softenv/softenv.db заменить /usr/bin/whatami на идентификатор архитектуры(linux-centos5-is32).
- в /etc/softenv/softenv.config.pl заменить "/usr/bin/whatami" на идентификатор архитектуры с echo ("echo linux-centos5-is32").
Выполнить soft-msd для компиляции файла конфигурации.
Настройка GRAM
Поскольку стандартные стыки ищут утилиту soft-msc и файл конфигурации softenv-load.sh в несовсем стандартных для FHS местах (а я перед этим замучался пакетировать softenv, чтобы он встал в стандартные места :( ), нужно поправить значения переменных $soft_msc и $softenv_load в соответствующем perl модуле.
Кроме того нужно поправить следующий файл конфигурации GRAM. Возможны два варианта использования SoftEnv: по умолчанию и прямым указанием в задании какие SoftEnv расширения использовать. В случае если нужна поддержка SoftEnv по умолчанию, необходимо в файле $GLOBUS_LOCATION/etc/gram-service-Cleo/jndi-config.xml установить значение enableDefaultSoftwareEnvironment в true. Кроме того для каждой локальной учётной записи необходимо создать файл .soft и вписать туда SoftEnv теги используемые по умолчанию. Например:
@default +abinit-6.0.3-gfortran44-nompi
Следует отметить, что при указании SoftEnv в тексте задания файл .soft игнорируется.
Проверка
Имеем следующее задание для Pilot(адаптировано из руководства к abinit):
{"version": 2,
"description": "тестовое задание abinit",
"tasks": [ { "id": "a",
"description": "задача #1",
"definition": { "version": 2,
"executable": "abinit",
"extensions" : { "softenv": "+abinit-6.0.3-gfortran44-nompi" }
"input_files": {
"t11.in": "t11.in",
"t1x.files": "t1x.files",
"01h.pspgth": "01h.pspgth"
},
"stdin": "t1x.files",
"output_files": {
"t11.out": "t11.out",
"t11o_DDB": "t11o_DDB",
"t11o_DEN": "t11o_DEN",
"t11o_EIG": "t11o_EIG",
"t11.outA": "t11.outA",
"t11.outB": "t11.outB",
"t11o_WFK": "t11o_WFK"
"t11.log": "t11.log"
},
"stdout": "t11.log"
}
} ],
"requirements": {
"hostname": ["tb06.ngrid.ru"],
"lrms": "Cleo",
"queue": "main"
}
}
После запуска на выходе имеем набор файлов с результатами. Для проверки работоспособности SoftEnv, можно убедится, что при отсутствии в описании задания секции
"extensions" : { "softenv": "+abinit-6.0.3-gfortran44-nompi" }
в tb11.log попадет что то виде
bash: abinit: command not found
вместо полезной информации о том как прошёл расчет
