Каковы преимущества и недостатки алгоритмов распада частиц и распада доменов?


15

Я запускаю моделирование молекулярной динамики (MD), используя несколько программных пакетов, таких как Gromacs и DL_POLY.

Gromacs теперь поддерживает как алгоритмы разложения частиц, так и разложения доменов. По умолчанию в моделированиях Gromacs используется декомпозиция домена, хотя в течение многих лет, до недавнего времени, декомпозиция частиц была единственным методом, реализованным в Gromacs. В одной из работ Gromacs (DOI 10.1002 / jcc.20291) авторы приводят причину своего первоначального выбора разложения частиц:

«Ранним конструктивным решением был выбор работы с разложением частиц, а не с разложением доменов, чтобы распределить работу по процессорам. В последнем случае пространственные домены назначаются процессорам, что позволяет быстро находить пространственных соседей только по локальной связи, но возникают сложности из-за частицы, которые перемещаются через пространственные границы, значительны. Разложение домена является лучшим выбором только тогда, когда линейный размер системы значительно превышает диапазон взаимодействия, что редко имеет место в молекулярной динамике. При разложении частиц каждый процессор вычисляет силы и обновления координат / скорости для заданной доли частиц, используя предварительно вычисленный список соседей, равномерно распределенный по процессорам. возникающее из парного взаимодействия между частицами и, что необходимо для обновления скорости обеих частиц i и jFijijij, вычисляется только один раз и передается другим процессорам. Каждый процессор хранит в своей локальной памяти полный набор координат системы, а не ограничивает память только необходимыми координатами. Это проще и экономит накладные расходы на связь, в то время как требование к памяти обычно не является ограничивающим фактором даже для миллионов частиц. Список соседей, с другой стороны, который может содержать до 1000 раз больше частиц, распределен по процессорам. Коммуникация по существу ограничена отправкой координат и сил один раз за раз вокруг кольца процессора. Эти варианты оказались надежными с течением времени и легко применимы к современным кластерам процессоров ».

Что они понимают под «линейным размером системы» в предложении «Разложение домена является лучшим выбором только тогда, когда линейный размер системы значительно превышает диапазон взаимодействия, что редко имеет место в молекулярной динамике»? Из вышеприведенного абзаца я получаю идею о том, что разложение частиц имеет то преимущество, что не нужно иметь дело с частицами, движущимися через доменные границы; скорее, вам просто нужно иметь достаточно памяти для каждого процессора, чтобы сохранить общую конфигурацию системы. Таким образом, разложение частиц выглядит очень благоприятно, тогда как разложение доменов выглядит очень неблагоприятно.

Я уверен, что это очень сложный вопрос (и, вероятно, предмет многих книг), но в основном, если разложение частиц кажется таким благоприятным, зачем кому-то нужно использовать разложение доменов? Является ли декомпозиция домена просто выгодной, если размер системы очень большой (что затрудняет или делает невозможным сохранение общей конфигурации в каждом процессоре)? Исходя из приведенного выше абзаца, я не уверен, почему декомпозиция домена сейчас, совсем недавно, является алгоритмом распараллеливания по умолчанию в Gromacs.

Похоже, что DL_POLY сейчас (версия 4) также использует декомпозицию домена. Из руководства по версии 4:

«Таким образом, разделение данных конгурации основано на расположении атомов в ячейке моделирования, такое геометрическое распределение системных данных является отличительной чертой алгоритмов DD. Обратите внимание, что для эффективной работы этой стратегии смоделировано Система должна обладать достаточно равномерной плотностью, чтобы каждому процессору было выделено почти равную часть данных об атомах (насколько это возможно). При таком подходе вычисление сил и интеграция уравнений движения распределяются (разумно) равномерно между процессорами и в значительной степени может быть вычислен независимо для каждого процессора.Этот метод концептуально прост, хотя сложен для программирования и особенно подходит для крупномасштабных симуляций, где эффективность самая высокая.

...

В случае стратегии DD алгоритм SHAKE (RATTLE) проще, чем для метода реплицированных данных DL_POLY Classic), где требуется глобальное обновление позиций атомов (слияние и сплайсинг). "

Это звучит так, как будто декомпозиция домена хороша, потому что она может быть более эффективной, хотя, возможно, более сложной для реализации.

С другой стороны, в предыдущей версии (DL_POLY Classic) использовалось распараллеливание реплицированных данных, что, по-видимому, является еще одним названием для разложения частиц. Из руководства этой версии:

ряvяеяNатомы в моделируемой системе, воспроизводятся на каждом узле обработки). В этой стратегии большинство вычислений сил и интеграция уравнений движения могут быть легко и равномерно распределены между узлами и в значительной степени обрабатываться независимо на каждом узле. Метод относительно прост в программировании и достаточно эффективен. Более того, его можно «свернуть», чтобы очень легко работать на одном процессоре. Однако стратегия может быть дорогостоящей в памяти и иметь большие накладные расходы на связь, но в целом она оказалась успешной в широком спектре приложений.

Этот абзац в целом соответствует первому абзацу в этом вопросе, за исключением того, что в нем говорится, что реплицированные данные / разложение частиц имеют «высокие накладные расходы на связь». Параграф из статьи Gromacs, кажется, говорит об обратном - что разложение частиц предпочтительнее, потому что оно имеет меньшие накладные расходы связи, чем разложение домена.

У тебя есть мысли?

Ответы:


10

Распад частиц и доменов напрямую связан с двумя основными методами ускорения расчетов силы для систем с ограниченным радиусом действия - списками соседей Verlet и списками, связанными с ячейками. Если вы хотите вникнуть в подробности, есть очень хорошая книга Аллена и Тилдесли под названием « Компьютерное моделирование жидкостей» , которую многие считают «библией» исследований молекулярной динамики и Монте-Карло. Затем есть численное моделирование в молекулярной динамике от Griebel, Knapek и Zumbusch, которое углубляется в различные методы параллельной реализации MD.

О(N2)О(N)

О(N)О(N) Nэто масштабируется лучше. Отсюда и линейный размер аргумента. Метод декомпозиции доменов является прямым расширением метода связанных списков ячеек - ячейки делятся между разными процессорами.

Проблема с разложением домена заключается в том, что он должен обмениваться данными, когда частицы перемещаются из одной ячейки в другую, за которой заботится другой процессор. Это может стать проблемой при более высоких температурах моделирования, когда частицы имеют тенденцию двигаться дальше, чем их положение равновесия, или когда существует поток частиц. Также информация из ячеек на границе домена должна передаваться на каждой итерации в соседний домен (ы). Но все это локально синхронное общение и может быть сделано очень эффективно.

Реплицированные данные - это самый простой подход, но, к сожалению, он требует, чтобы на каждом этапе вся информация о положении и скорости синхронизировалась глобально. Это действительно плохо масштабируется, и для очень большой системы глобальный объем памяти равен размеру структуры данных, умноженному на количество используемых процессоров, тогда как одной из целей параллельной обработки является распределение данных таким образом, чтобы каждый процессор занимал меньше места. чем глобальное количество данных.

Таким образом, не существует метода «один размер подходит всем», подходящего для всех моделируемых систем. Большую часть времени лучшая стратегия распараллеливания может быть выведена из геометрии системы, и может быть выбран соответствующий для этого случая код MD - все они все-таки реализуют более менее одинаковые базовые силовые поля и интеграторы.


Отличный ответ! Распространено ли равномерное распределение атомов? это работает одинаково для неоднородных распределений?
fcruz

3
Это зависит от моделируемой системы. Если это жидкий, газообразный или объемный кристалл, то атомы были бы более или менее равномерно распределены. Если есть фазы или сильно локализованные агрегаты частиц - меньше. Для неравномерного распределения разложение домена может быть менее эффективным, если не будет принят какой-либо адаптивный подход.
Христо Илиев

2
О(N2)О(NжурналN)орО(N)

4

«Разложение домена является лучшим выбором только тогда, когда линейный размер системы значительно превышает диапазон взаимодействия, что редко имеет место в молекулярной динамике», авторы этой (очень старой) статьи GROMACS подразумевают, что если пространственный размер списка соседей равен порядка 1 нм, а ячейка моделирования составляет всего несколько нанометров, тогда накладные расходы на выполнение декомпозиции домена слишком велики. Вы также можете принять всеобщее распространение информации при разложении частиц, и вам не нужно тратить время на весь бухгалтерский учет для разложения домена.

Проблема, связанная с разложением частиц в GROMACS, заключалась в том, что со временем частицы, назначенные каждому процессору, диффундируют в пространстве. Поскольку ответственность за вычисление каждого взаимодействия фиксировалась по их начальному расположению, распространение постепенно увеличивало объем общего пространства, которое каждый процессор должен знать, чтобы построить свой список соседей, даже если общее вычисление, описанное списком соседей, было постоянным. На практике вы должны периодически перезапускать симуляцию для сброса данных и местоположения связи.

Ваше предположение о том, что «разложение частиц имеет преимущество в том, что им не приходится иметь дело с частицами, движущимися через доменные границы», не выполняется, если диффузия значительна во временном масштабе моделирования.

Декомпозиция домена справляется с этим «заблаговременно», перенося ответственность за взаимодействие наряду с распространением, тем самым улучшая локальность данных на каждом процессоре и минимизируя объем связи.

Отказ от ответственности: я помогаю в разработке GROMACS и, вероятно, вырву реализацию разложения частиц на следующей неделе ;-)


0

Я хотел бы добавить к ответу Христо Илиева. В то время как его пост в основном говорит о вычислительной сложности , когда дело доходит до распараллеливания, сложность коммуникации, по крайней мере, так же важна - и это главная причина декомпозиции домена.

Современные параллельные машины обычно имеют некоторую топологию тора. Это означает, что каждый ЦП имеет несколько «соседних» ЦП, с которыми он может общаться очень быстро. Связь с процессором, который не является соседом, обходится дороже. Поэтому всегда выгодно иметь алгоритм, который должен взаимодействовать только с соседними процессорами.

пО(п2)

пО(п)

О(п)

Однако обратите внимание, что неоднородные системы не так распространены, как может показаться, они возникают только при моделировании чего-либо в вакууме или при использовании неявного растворителя. Плотности кристаллов и жидкостей достаточно близки для разложения домена.


Это очень хороший ответ. Я просто хотел добавить точность. При моделировании гранулярного потока, в котором используются методы, основанные на MD-подобных алгоритмах (например, метод дискретных элементов), часто встречаются случаи, когда у вас есть области, почти лишенные частиц, и другие, которые полны ими ...
BlaB

Разумеется, для разложения частиц не требуется, чтобы партнеры по взаимодействию распределялись случайным образом. Можно и часто следует начинать с разложения на пространственно компактные группы частиц, поскольку они будут иметь общих соседей по взаимодействию. В конце концов диффузия будет означать, что распределение становится случайным. Вот почему моделирование разложения частиц GROMACS, упомянутое выше, будет периодически перезапускаться, чтобы обновить локальность разложения.
Мабрахам
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.