Даний документ описує роботу з програмою для розрахунків Gromacs на кластері ІТФ.
Даний документ розрахований на користувачів кластеру Інституту теоретичної фізики ім. М.М.Боголюбова НАНУ, які мають досвід роботи з програмою Gromacs, і, таким чином, знайомі з її командами. Доступ до програми Gromacs можуть отримати лише користувачі кластеру ІТФ, за виключенням випадку, коли доступ до Gromacs відбувається через grid (див. відповідний розділ).
Користувачі, що не знайомі з програмою Gromacs, для набуття базових знань про неї можуть скористатися документацією на сайті розробника.
Зауваження та рекомендації щодо даного документу прохання надсилати за однією з адресс pelyh@grid.bitp.kiev.ua, alitovchenko@bitp.kiev.ua чи svistunov@bitp.kiev.ua.
1. Загальні положення
2. Підготовка файлів для симуляції
3. Симуляція в однопроцесорному режимі
4. Розпаралелення симуляції на декілька процесорів за домопогою Intel MPI
5. Gromacs через grid
5.1 Gromacs через grid у однопроцесорному режимі
5.2 Gromacs через grid у багатопроцесорному режимі
На кластері Інституту теоретичної фізики встановлено Gromacs версії 5.0. Gromacs встановлено виключно на внутрішніх вузлах кластеру.
Готувати файли до симуляції користувач може вручну, зайшовши на будь-який внутрішній вузол кластеру. Власне ж симуляцію (команди mdrun та mdrun_mpi) слід запускати лише через систему PBSPro, як описано у відповідних розділах даного документу.
На кластері ІТФ Gromacs може проводити симуляцію як у звичайному режимі, використовуючи 1 процесор, так і у паралельному. Для розпаралелення процесів симуляції використовується команда mdrun_mpi.
Для того, щоб зробити усі необхідні дії, що передують симуляції (команди pbs2gmx, grompp і т.п.), слід зайти на будь-який внутрішній вузол кластеру (мають імена з a33 по a40) та виконати наступну команду:
. /opt/gromacs5/gromacs/bin/GMXRC
після чого користувачу стануть доступні усі команди Gromacs для виконання будь-яких дії перед власне симуляцією.
Наприклад:
[user@clusterui ~]$ ssh a33 |
[user@a28 ~]$ . /opt/gromacs5/gromacs/bin/GMXRC |
[user@a28 ~]$ grompp |
Для запуску симуляції користувачі повинні виконати наступні дії:
1. Підготувати вхідні файли та розмістити їх на вузлі clusterui.bitp.kiev.ua (бажано у своєму домашньому каталозі).
2. Завантажити спеціальний скрипт для запуску симуляції: http://clustermon.bitp.kiev.ua/upload/pbs_gromacs. Даний скрипт був створений саме для того, щоб полегшити користувачу відправку завдання на симуляцію через систему PBSPro. Він самостійно налаштовує усі необхідні змінні для запуску Gromacs на внутрішніх вузлах кластеру.
3. Налаштувати у скрипті pbs_gromacs параметри під свою задачу. Параметри, що підлягають налаштуванню, наступні.
a. #PBS -N pbs_gromacs
pbs_gromacs
b. #PBS -l walltime=900:0:0
900:0:0
c. #PBS -l mem=850m
850m
d. FILE_NAME=testec.tpr
e. mdrun -s ${FILE_NAME} -o ${FILE}.trr -x ${FILE}.xtc -c ${FILE}.gro -e ${FILE}.edr -g ${FILE}.log -v
trr
xtc
mdrun
mdrun
2>&1 | tee ./current.status
current.status
mdrun
tail current.status
4. Запустити скрипт на виконання командою
qsub pbs_gromacs
Для запуску симуляції у паралельному режимі через Intel MPI користувачі повинні виконати наступні дії:
1. Підготувати вхідні файли та розмістити їх на вузлі clusterui.bitp.kiev.ua (бажано у своєму домашньому каталозі).
2. Завантажити спеціальний скрипт для запуску симуляції: http://clustermon.bitp.kiev.ua/upload/pbs_gromacs_mpi. Даний скрипт був створений саме для того, щоб полегшити користувачу відправку завдання на паралельну симуляцію через систему PBSPro. Він самостійно налаштовує усі необхідні змінні для запуску Gromacs через MPI на внутрішніх вузлах кластеру.
3. Налаштувати у скрипті pbs_gromacs_mpi параметри під свою задачу. Параметри, що підлягають налаштуванню, наступні.
a. #PBS -N pbs_gromacs_mpi
pbs_gromacs_mpi
b. #PBS -l walltime=900:0:0,mem=850m
900:0:0
850m
c. #PBS -l nodes=1,ppn=2
d. FILE_NAME=testec.tpr
e. mpirun -wdir $PBS_O_WORKDIR -np 2 ${GROMACS_HOME}/bin/mdrun_mpi -s ${FILE_NAME} -o ${FILE}.trr -x ${FILE}.xtc -c ${FILE}.gro -e ${FILE}.edr -g ${FILE}.log -v -nice -5
2
np
trr
xtc
mdrun_mpi
mdrun
mdrun
2>&1 | tee ./current.status
current.status
mdrun
tail current.status
4. Запустити скрипт на виконання командою
qsub pbs_gromacs_mpi
Користувачі grid-сегменту НАНУ мають змогу використовувати Gromacs для обробки своїх даних як у однопроцесорному, так і в паралельному режимах, надіславши відповідним чином оформлену grid-задачу.
Для використання Gromacs у однопроцесорному режимі слід:
1. Підготувати вхідні файли.
2. Підготувати виконуємий файл, що містить відповідні команди Gromacs для симуляції та/або іншої обробки файлів.
3. Підготувати опис grid-задачі мовою xrsl, обов'язково включивши до нього наступний атрибут:
(runTimeEnvironment="GROMACS-4.0.3")
Крім того, усі вхідні файли потрібно в описі задачі описати за допомогою атрибуту inputFiles, а всі вихідні -- в атрибуті outputFiles.
Після чого подати опис задачі на виконання командою ngsub з будь-якої точки, де встановлено та налаштовано grid-клієнт для сегменту НАНУ.
Для прикладу розглянемо ситуацію, коли у користувача є заздалегідь підготовлений вхідний файл: testec.tpr. Тоді виконуємий файл може мати ім'я gromacs_grid.sh та виглядати наступним чином:
#!/bin/bash |
echo -n "Running the simulation\n" |
mdrun -s testec.tpr -o testec.trr -x testec.xtc -c testec.gro -e testec.edr -g testec.log -v |
echo -n "Simulation finished\n" |
Опис задачі може мати ім'я gromacs.xrsl та виглядати наступним чином:
& |
(executable="gromacs_grid.sh") |
(inputFiles=("testec.tpr" "")) |
(outputFiles=("testec.trr" "") ("testec.xtc" "") ("testec.gro" "") ("testec.edr" "") ("testec.log" "")) |
(stdout="output") |
(stderr="error") |
(runTimeEnvironment="GROMACS-4.0.3") |
Створивши ці файли, користувач може відправити задачу на виконання:
[user@nordug ~]$ ngsub gromacs.xrsl |
Job submitted with jobid: gsiftp://nordug.bitp.kiev.ua:2811/jobs/2494012391286502018445874 |
[user@nordug ~]$ |
А після її завершення забрати результати на будь-який комп'ютер, на якому встановлено налаштований grid-клієнт для сегменту НАНУ:
[user@nordug ~]$ ngget gsiftp://nordug.bitp.kiev.ua:2811/jobs/2494012391286502018445874 |
Results stored at /home/user/2494012391286502018445874 |
Jobs processed: 1, successfuly downloaded: 1 |
[user@nordug ~]$ |
Для багатопроцесорного режиму слід робити всі ті кроки, що і для однопроцесорного, але замість команди mdrun використовувати команду mdrun_mpi, запущену через команду mpirun. Для обох команд слід вказати кількість процесорів, на яку слід провести розпаралелення. Наприклад:
mpirun -np 4 mdrun_mpi -s testec.tpr -o testec.trr -x testec.xtc -c testec.gro -e testec.edr -g testec.log -v -np 4
Крім того, до опису грід-задачі мовою xrsl слід додати два параметри: (count=<загальна_кількість_процесорів_для_задачі>) та (runTimeEnvironment="INTEL-MPI"). Нижче наведено приклад виконуємого файлу та файлу опису для випадку 4 процесорів:
Виконуємий файл gromacs_mpi_grid.sh
#!/bin/bash |
echo -n "Running the simulation on 4 processors\n" |
mpirun -np 4 mdrun_mpi -s testec.tpr -o testec.trr -x testec.xtc -c testec.gro -e testec.edr -g testec.log -v -np 4 |
echo -n "Simulation finished\n" |
Файл опису задачі gromacs_mpi_grid.xrsl
& |
(executable="gromacs_mpi_grid.sh") |
(inputFiles=("testec.tpr" "")) |
(outputFiles=("testec.trr" "") ("testec.xtc" "") ("testec.gro" "") ("testec.edr" "") ("testec.log" "")) |
(stdout="output") |
(stderr="error") |
(count=4) |
(runTimeEnvironment="GROMACS-4.0.3") |
(runTimeEnvironment="INTEL-MPI") |