Популярные сообщения

суббота, 27 ноября 2010 г.

About MD - основы метода молекулярной динамики.

    Для расчетов молекулярной динамики применяются различные програмные пакеты, как то: GROMACS, Puma, CharMM, Amber, NAMD. В этой статье будет кратнко рассказываться о методе молекулярной динамики, все нижесказанное справедливо для любых реализаций МД. Редакция от 24.01.2011.
      GROMACS - это пакет, который представляет собой набор программ, предназначенных для расчета траекторий движения отдельных частей молекулы, аппроксимированной механической системой физических материальных точек, связанных набором сил.
    Алгоритм вычислений сводится к итерационному процессу, на каждом шаге которого:
1.    По имеющемуся набору координат материальных точек (ядер атомов) вычисляются значения сил, например, кулоновские, валентные и все прочие.
2.    Далее вычисляются значения ускорений для каждого центра, в соответствии со значением действующей результирующей силы и массы этого центра.
3.    Затем решаются уравнения движения в предположении, что силы и ускорения не меняются во времени. Координаты центров системы для некоего, как правило, очень незначительного, времени записываются в память. Это время называется шагом интегрирования. Новые координаты и скорости передаются на следующий шаг.
    Такая механистическая модель далека от идеала, но она достаточно адекватно описывает движения молекулярных структур, если достаточно точно вычислены силовые константы и шаг интегрирования не слишком велик.
     Молекулярно-динамические расчеты являются весьма ресурсоёмкими, в связи с чем размер исследуемых систем невелик. Поэтому особенно важной становится проблема построения такой границы системы, которая не вносила бы в её поведение заметных искажений. На настоящий момент наиболее адекватной представляется граница в виде т.н. периодических граничный условий. Исследуемая система окружается виртуальным параллелепипедом ("ячейкой"), границы которого любая частица систему может свободно пересекать. Но при пересечении грани, частица переносится на другую сторону системы (из координаты частицы вычитается поперечный размер ячейки). Т.о. система, с одной стороны, ограничена, с другой стороны граница представлена не "стенкой", а "продолжением" исследуемой системы — её копией.
    Необходимо ввести ещё одно понятие. Для ускорения расчетов, пренебрегают электростатическими и Ван-дер-Ваалсовыми взаимодействиями атомов, находящихся на большом расстоянии. Расстояние, начиная с которого взаимодействия считаются малыми и не учитываются называют "радиусом обрезания". Конкретная величина радиуса обрезания определяется пользователем.
    Макроскопические характеристики такой небольшой молекулярной системы сильно флуктуируют. Для поддержания среднего давления и температуры разработаны специальные алгоритмы, называемые баростатом и термостатом соответственно. Термостат вносит в систему тепловой шум, приближая распределение скоростей к нормальному Максвелловскому распределению для заданной температуры. Баростат изменяет объем ящика для создания давления, равного заданному. 

P.S. Если статья была вам полезна проголосуйте в опросе блога, этим вы скажите СПАСИБО Автору, также можно обсудить её на Форуме. 

Смотрите также, алгоритм действий для запуска моделирования в Gromacs.
Назад к оглавлениюруководство по Gromacs

12 комментариев:

  1. Спасибо Алексей,
    мне Ваша статья очень помогла понять
    как функционирует 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.
    Есть ли у Вас какие-либо идеи на этот счет?
    Спасибо,
    Володя.

    ОтветитьУдалить
  2. Владимир, вы совершенно правы, у вас каждый процессор считает одну и туже задачу, об этом свидетельствует то, что Gromacs переименовывает файлы начиная и заканчивая #, а на конце - номер файла от момента первого запуска и строка Back Off! I just backe ... говорит о том же.
    У меня такая проблема возникала, когда я в команде mpirun -hostfile mpi.host mdrun_mpi [...] указывал неверные параметры запуска, сейчас я точно уже не вспомню, что конкретно я вводил.
    А вроде бы я запускал через SSH тупо несколько mdrun`ov с mpirun вместе на разных процессорах и ПК.
    Советую, просмотреть процедуру запуска и команду запуска mdrun`a. Скорее всего у вас происходит, то что было у меня...

    ОтветитьУдалить
  3. Спасибо за быструю реакцию.
    Тем не менее сомневаюсь, что дело в синтаксисе строки с 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
    Володя.

    ОтветитьУдалить
  4. Все равно советую копать в сторону запуска и файлов настройки openMPI, переменные окружения и файлы хостов.
    В крайнем случае можно либо обновить Gromacs, либо откатить openMPI до версии 1.2

    А зачем второй -np 4 в конце ?

    ОтветитьУдалить
  5. Зачем вам использовать два интерфейса параллельной передачи данных OpenMPI и mpich2 ?

    ОтветитьУдалить
  6. Копаю по всем направлениям, но до причины так и не докопался. Удаление второго -np 4 не помогает. С версией Gromacs 4.5.2 та же проблема. А новые версии OpenMPI и
    mpich2 - 1.4 и 1.3 соответсвенно мне нужны т.к. подерживают крайне важное возможность SGE, как checkpoint и migration.

    ОтветитьУдалить
  7. Могу дать такой совет, отвлечься от проблемы на небольшой срок, а затем расписать от и до все кусочки алгоритма процесса запуска, что за что, какой модуль куда и что включает. Мне помогает, когда начинаю топтаться на месте.

    SGE мне не довелось пообщаться, что у нее за опция такая migration? какие ф-ции выполняет?

    ОтветитьУдалить
  8. А сам SGE какую роль выполняет, используется как шедулер и/или супервайзер для кластера?

    ОтветитьУдалить
  9. SGE распределяет ресурсы кластера, управляет очередями заданий. Migration позволяет переместить задание с низким приоритетом на свободный host при появлении на текущем host задания с более высоким приоритетом. Т.е. позволяет резко повысить коэфициент использования кластера.

    ОтветитьУдалить
  10. Удобная вещь. SGE теперь тоже принадлежит, как и SUN компании ORACLE. Есть ссылка для скачивания и/или руководство на русском/английском языке?

    Предпоследний совет из серии попробуйте вот это...)) Если SGE управляет процессами запуска и работы на кластере, то в нем скорее всего и проблема, а не в Gromacs. Сбой происходит при инициализации команды, он ее "клонирует".

    ОтветитьУдалить
  11. Да, действительно 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

    ОтветитьУдалить

Ваш комментарий будет "принят к сведению" и пойдет на рассмотрение.