Які переваги та недоліки алгоритмів розкладання частинок та паралелізації паралелізації розкладання домен?


15

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

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

"Раннім дизайнерським рішенням був вибір роботи з розкладанням частинок, а не розкладанням домену для розподілу роботи над процесорами. В останньому випадку просторові домени призначаються процесорам, що дозволяє швидко знаходити просторових сусідів лише за допомогою локальної комунікації, але ускладнення через до частинок, які переміщуються через просторові межі, є значним. Розкладання домену є кращим вибором лише тоді, коли розмір лінійної системи значно перевищує діапазон взаємодії, що рідко трапляється в молекулярній динаміці. При розкладанні частинок кожен процесор обчислює сили та оновлення координат / швидкості. для призначеної фракції частинок, використовуючи попередньо обчислений сусідський список, рівномірно розподілений по процесорам що виникає в результаті парної взаємодії між частинками i та j , яка необхідна для оновлення швидкості обох частинок i та jЖijijij, обчислюється лише один раз і передається іншим процесорам. Кожен процесор зберігає у своїй локальній пам’яті повний набір координат системи, а не обмеження зберігання потрібними йому координатами. Це простіше і економить комунікаційні витрати, тоді як претензія на пам'ять зазвичай взагалі не є обмежуючим фактором, навіть для мільйонів частинок. З іншого боку, список сусідів, який може містити до 1000 разів більше частинок, розподіляється по процесорам. Зв'язок по суті обмежується надсиланням координат і сил один раз на крок навколо кільця процесора. Цей вибір з часом виявився надійним і легко застосовно до сучасних процесорних кластерів ".

Що вони означають під "розміром лінійної системи" у реченні "Розкладання домену - кращий вибір лише тоді, коли розмір лінійної системи значно перевищує діапазон взаємодії, що рідко має місце у молекулярній динаміці"? З вищевказаного абзацу я розумію, що розкладання частинок має перевагу в тому, що не потрібно мати справу з частинками, що рухаються через межі домену; скоріше, просто потрібно мати достатньо пам'яті для кожного процесора, щоб зберігати загальну конфігурацію системи. Таким чином, розкладання частинок виглядає дуже сприятливо, тоді як розкладання домен виглядає дуже несприятливо.

Я впевнений, що це дуже складне питання (і, мабуть, тема багатьох книг), але в основному, якщо розкладання частинок здається настільки сприятливим, навіщо комусь потрібно використовувати розкладання домену? Чи розкладення домену просто сприятливе, якщо розмір системи дуже великий (ускладнює або неможливо зберігати загальну конфігурацію у кожному процесорі)? Виходячи з цитованого вище абзацу, я не впевнений, чому декомпозиція домену зараз зовсім недавно є алгоритмом паралелізації за замовчуванням у Gromacs.

Здається, що DL_POLY зараз (версія 4) також використовує декомпозицію домену. З посібника версії 4:

"Поділ даних конгрурації таким чином заснований на розташуванні атомів у імітаційній комірці. Таке геометричне розподіл системних даних є ознакою алгоритмів DD. Зауважте, що для того, щоб ця стратегія працювала ефективно, моделювали система повинна мати досить рівномірну щільність, так що кожному процесору виділяється майже рівна частина даних атома (наскільки це можливо). Завдяки такому підходу обчислення сил та інтеграція рівнянь руху розподіляються (розумно) порівну між процесорами і значною мірою їх можна обчислити незалежно на кожному процесорі. Цей метод концептуально простий, хоч і складний у програмі, і особливо підходить для великомасштабного моделювання, де ефективність найвища.

...

У випадку стратегії DD алгоритм SHAKE (RATTLE) простіший, ніж для методу реплікаційних даних DL_POLY Classic), де необхідні глобальні оновлення позицій атомів (злиття та сплайсинг). "

Це робить звуком так, ніби декомпозиція домену хороша, тому що може бути більш ефективною, хоча можливо більш складною для реалізації.

З іншого боку, попередня версія (DL_POLY Classic) використовувала паралелізовані паралельні дані, що, схоже, є іншою назвою для розкладання частинок. З посібника з цієї версії:

Стратегія повторних даних (RD) - один із кількох способів досягнення паралелізації в МД. Його назва походить від реплікації даних конфігурації на кожному вузлі паралельного комп'ютера (тобто масиви, що визначають атомні координати , швидкості v i та сили f i , для всіх NrivifiNатоми в змодельованій системі відтворюються на кожному вузлі обробки). У цій стратегії більшість обчислень сил та інтегрування рівнянь руху можна розподілити легко і порівну між вузлами і значною мірою обробляти незалежно на кожному вузлі. Метод порівняно простий у програмі та є досить ефективним. Більше того, дуже просто можна запустити на одному процесорі. Однак стратегія може бути дорогою в пам'яті та мати високі накладні витрати, але загалом вона виявилася успішною у широкому діапазоні застосувань.

Цей параграф, як правило, відповідає першому абзацу в цьому запитанні, за винятком того, що він говорить про те, що повторне розкладання даних / частинок має "високі накладні витрати". Абзац із статті Gromacs, схоже, говорить про зворотне - що розкладання частинок є кращим, оскільки воно має нижчі комунікаційні витрати, ніж розкладання домену.

У вас є думки?

Відповіді:


10

Розкладання частинок і доменів безпосередньо пов'язане з двома основними методами прискорення обчислення сили для систем з обмеженим діапазоном взаємодій - списки сусідів Верлета та списки, пов'язані з комірки. Якщо ви хочете розібратися в деталях, є досить приємна книга від Аллена та Тільдеслі, яка називається Комп'ютерне моделювання рідин , яка вважається багатьма "біблією" досліджень молекулярної динаміки та Монте-Карло. Потім відбувається чисельне моделювання в молекулярній динаміці від Грібеля, Кнапека та Зумбуша, яке заглиблюється в різні методи паралельної реалізації МД.

О(N2)О(N)

О(N)О(N) Nвона краще масштабується. Звідси аргумент лінійного розміру. Метод декомпозиції домену є прямим розширенням методу списків, пов'язаних з комірками - клітини поділяються між різними процесорами.

Проблема декомпозиції домену полягає в тому, що він повинен спілкуватися, коли частинки переміщуються з однієї комірки в іншу, про яку піклується інший процесор. Це може стати проблематичним при більш високих температурах моделювання, коли частинки мають тенденцію віддалятися далі, ніж їх положення рівноваги, або коли відбувається потік частинок. Також інформація з комірок на межі домену повинна передаватися при кожній ітерації до сусідніх доменів. Але все це є локальним синхронним зв’язком і його можна зробити дуже ефективно.

Повторені дані - це найпростіший підхід, але, на жаль, він вимагає, щоб на кожному кроці вся інформація про положення та швидкості була синхронізована глобально. Це насправді не дуже масштабується, і для дуже великої системи глобальна кількість пам’яті - це розмір структури даних, менший за кількість використовуваних процесорів, тоді як однією з цілей паралельної обробки є розподіл даних таким чином, що кожен процесор містить менше ніж загальна кількість даних.

Підсумовуючи це, не існує методу "один розмір, який підходить усім", який би підходив для всіх модельованих систем. Більшу частину часу найкраща стратегія паралелізації може бути виведена з геометрії системи, і відповідний для цього випадку міг бути обраний код MD - вони реалізують більше менш однакових полів сили та інтеграторів.


Чудова відповідь! Чи прийнято рівномірно розподіляти атом? чи працює це так само для нерівномірних розподілів?
fcruz

3
Це залежить від модельованої системи. Якщо це рідкий, газовий або насипний кристал, то атоми були б менш менш рівномірно розподілені. Якщо є фази або сильно локалізовані агрегати частинок - тим менше. Для нерівномірного розподілу розкладання домену може бути менш ефективним, якщо не буде застосовано якийсь адаптивний підхід.
Христо Ілієв

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

4

Під "Розкладання домену - кращий вибір лише тоді, коли розмір лінійної системи значно перевищує діапазон взаємодії, що рідко трапляється в молекулярній динаміці", автори цієї (дуже старої) документа GROMACS означають, що якщо просторовий розмір списку сусідів є порядку 1 нм, а імітаційна комірка становить лише кілька нанометрів, то накладні витрати від декомпозиції домену занадто великі. Ви можете також прийняти розподіл інформації все до всіх при розкладанні частинок, і не потрібно витрачати час на всю бухгалтерію для декомпозиції домену.

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

Ваша думка про те, що "розкладання частинок має перевагу в тому, що не потрібно мати справу з частинками, що рухаються через межі домену", не дотримується, якщо дифузія є значною за часовий масштаб моделювання.

Декомпозиція домену займається цим "наперед", мігруючи відповідальність за взаємодію разом з дифузією, тим самим покращуючи локальність даних про кожен процесор і мінімізуючи обсяг зв'язку.

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


0

Я хотів би додати відповідь Христо Ілієва. Хоча його посада здебільшого говорить про складність обчислювальної техніки , якщо мова йде про паралелізацію, складність комунікації є як мінімум такою ж важливою - і що саме вона є основною причиною декомпозиції домену.

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

ПО(П2)

ПО(П)

О(П)

Зауважте, однак, що неоднорідні системи не такі поширені, як це може здатися, вони виникають лише при моделюванні чогось у вакуумі, або при використанні неявного розчинника. Щільності кристалів і рідин досить близькі, щоб здійснити розпад домену.


Це дуже гарна відповідь. Я просто хотів додати точність. Моделювання гранульованого потоку, що використовують методи, засновані на алгоритмах, подібних до МД (наприклад, метод дискретних елементів), часто стикаються з випадками, коли у вас є області, які майже не втрачають частинок, та інші, що їх повні ...
BlaB

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