Для расчетов молекулярной динамики применяются различные програмные пакеты, как то: GROMACS, Puma, CharMM, Amber, NAMD. В этой статье будет кратнко рассказываться о методе молекулярной динамики, все нижесказанное справедливо для любых реализаций МД. Редакция от 24.01.2011.
GROMACS - это пакет, который представляет собой набор программ, предназначенных для расчета траекторий движения отдельных частей молекулы, аппроксимированной механической системой физических материальных точек, связанных набором сил.
Алгоритм вычислений сводится к итерационному процессу, на каждом шаге которого:
1. По имеющемуся набору координат материальных точек (ядер атомов) вычисляются значения сил, например, кулоновские, валентные и все прочие.
2. Далее вычисляются значения ускорений для каждого центра, в соответствии со значением действующей результирующей силы и массы этого центра.
3. Затем решаются уравнения движения в предположении, что силы и ускорения не меняются во времени. Координаты центров системы для некоего, как правило, очень незначительного, времени записываются в память. Это время называется шагом интегрирования. Новые координаты и скорости передаются на следующий шаг.
Такая механистическая модель далека от идеала, но она достаточно адекватно описывает движения молекулярных структур, если достаточно точно вычислены силовые константы и шаг интегрирования не слишком велик.
Молекулярно-динамические расчеты являются весьма ресурсоёмкими, в связи с чем размер исследуемых систем невелик. Поэтому особенно важной становится проблема построения такой границы системы, которая не вносила бы в её поведение заметных искажений. На настоящий момент наиболее адекватной представляется граница в виде т.н. периодических граничный условий. Исследуемая система окружается виртуальным параллелепипедом ("ячейкой"), границы которого любая частица систему может свободно пересекать. Но при пересечении грани, частица переносится на другую сторону системы (из координаты частицы вычитается поперечный размер ячейки). Т.о. система, с одной стороны, ограничена, с другой стороны граница представлена не "стенкой", а "продолжением" исследуемой системы — её копией.
Необходимо ввести ещё одно понятие. Для ускорения расчетов, пренебрегают электростатическими и Ван-дер-Ваалсовыми взаимодействиями атомов, находящихся на большом расстоянии. Расстояние, начиная с которого взаимодействия считаются малыми и не учитываются называют "радиусом обрезания". Конкретная величина радиуса обрезания определяется пользователем.
Макроскопические характеристики такой небольшой молекулярной системы сильно флуктуируют. Для поддержания среднего давления и температуры разработаны специальные алгоритмы, называемые баростатом и термостатом соответственно. Термостат вносит в систему тепловой шум, приближая распределение скоростей к нормальному Максвелловскому распределению для заданной температуры. Баростат изменяет объем ящика для создания давления, равного заданному.
P.S. Если статья была вам полезна проголосуйте в опросе блога, этим вы скажите СПАСИБО Автору, также можно обсудить её на Форуме.
Смотрите также, алгоритм действий для запуска моделирования в Gromacs.
Назад к оглавлению : руководство по GromacsP.S. Если статья была вам полезна проголосуйте в опросе блога, этим вы скажите СПАСИБО Автору, также можно обсудить её на Форуме.
Смотрите также, алгоритм действий для запуска моделирования в Gromacs.
Спасибо Алексей,
ОтветитьУдалитьмне Ваша статья очень помогла понять
как функционирует Gromacs, но, к сожалению
в решении проблемы, над которой я бьюсь длительное время,
я не продвинулся.
Дело в том, что я системный администратор
по Unix/Linux в Тель-Авивском университете.
У нас установленo несколько версий Gromacs (основная 4.0.7) на кластере под управлением
SGE(Sun Grid Engine). SGE поддерживает паралельные задачи.
И кластер прекрасно работает с Gromacs посредством openmpi
и работал с mpich2 (версия 1.2).
Но с версии 1.3 возникли проблемы.
Задачи, как правило предназначаются для 4 процессоров.
И действительно все четыре процессора работают, но каждый из них
выполняет работу полностью,т.е. задача не распараллеливается. В результате возникают 4 одинаковых файлa
с расширением trr 3 из которых закоментированы.
11M Mar 14 09:07 #gro4_short.1539353.trr.1#
11M Mar 14 09:09 #gro4_short.1539353.trr.2#
11M Mar 14 09:10 #gro4_short.1539353.trr.3#
11M Mar 14 09:10 gro4_short.1539353.trr
(здесь gro4_short-название задачи,
а 1539353 - ID задачи).
При этом в файле сообщеной об ошибках появляются строки вроде такой:
Back Off! I just backed up gro4_short.1539353.trr to ./#gro4_short.1539353.trr.1#
То же для файлов с расширением log и edr.
Есть ли у Вас какие-либо идеи на этот счет?
Спасибо,
Володя.
Владимир, вы совершенно правы, у вас каждый процессор считает одну и туже задачу, об этом свидетельствует то, что Gromacs переименовывает файлы начиная и заканчивая #, а на конце - номер файла от момента первого запуска и строка Back Off! I just backe ... говорит о том же.
ОтветитьУдалитьУ меня такая проблема возникала, когда я в команде mpirun -hostfile mpi.host mdrun_mpi [...] указывал неверные параметры запуска, сейчас я точно уже не вспомню, что конкретно я вводил.
А вроде бы я запускал через SSH тупо несколько mdrun`ov с mpirun вместе на разных процессорах и ПК.
Советую, просмотреть процедуру запуска и команду запуска mdrun`a. Скорее всего у вас происходит, то что было у меня...
Спасибо за быструю реакцию.
ОтветитьУдалитьТем не менее сомневаюсь, что дело в синтаксисе строки с mdrun. Та же строка используется с другими паралельными средами (mpich2 1.2, openmpi) и все прекрасно работает.
Вот эта строка:
mpiexec -v -np 4 -machinefile hosts mdrun -v -nice 0 -s gro4_short -e gro4_short -o gro4_short -c gro4_short -g gro4_short -np 4 > gro4_short.std
Володя.
Все равно советую копать в сторону запуска и файлов настройки openMPI, переменные окружения и файлы хостов.
ОтветитьУдалитьВ крайнем случае можно либо обновить Gromacs, либо откатить openMPI до версии 1.2
А зачем второй -np 4 в конце ?
Зачем вам использовать два интерфейса параллельной передачи данных OpenMPI и mpich2 ?
ОтветитьУдалитьКопаю по всем направлениям, но до причины так и не докопался. Удаление второго -np 4 не помогает. С версией Gromacs 4.5.2 та же проблема. А новые версии OpenMPI и
ОтветитьУдалитьmpich2 - 1.4 и 1.3 соответсвенно мне нужны т.к. подерживают крайне важное возможность SGE, как checkpoint и migration.
Могу дать такой совет, отвлечься от проблемы на небольшой срок, а затем расписать от и до все кусочки алгоритма процесса запуска, что за что, какой модуль куда и что включает. Мне помогает, когда начинаю топтаться на месте.
ОтветитьУдалитьSGE мне не довелось пообщаться, что у нее за опция такая migration? какие ф-ции выполняет?
А сам SGE какую роль выполняет, используется как шедулер и/или супервайзер для кластера?
ОтветитьУдалитьSGE распределяет ресурсы кластера, управляет очередями заданий. Migration позволяет переместить задание с низким приоритетом на свободный host при появлении на текущем host задания с более высоким приоритетом. Т.е. позволяет резко повысить коэфициент использования кластера.
ОтветитьУдалитьУдобная вещь. SGE теперь тоже принадлежит, как и SUN компании ORACLE. Есть ссылка для скачивания и/или руководство на русском/английском языке?
ОтветитьУдалитьПредпоследний совет из серии попробуйте вот это...)) Если SGE управляет процессами запуска и работы на кластере, то в нем скорее всего и проблема, а не в Gromacs. Сбой происходит при инициализации команды, он ее "клонирует".
Да, действительно SGE теперь принадлежит Oracle, называется OGE и стала платной.
ОтветитьУдалитьНо скачать ее можно свободно с:
http://www.rocksclusters.org/wordpress/?page_id=123
Руководство на русском не встречал, но английском море информации. Вот одно из руководств:
http://wikis.sun.com/display/GridEngine/Printable+Using+Sun+Grid+Engine+Guide
По поводу моей проблемы. Я сомневаюсь, что дело в SGE. Скорее mpich2 1.3
не умеет работать с Gromacs
Спасибо за ссылки.
ОтветитьУдалить