Як можна паралелізувати багаторідний метод розв’язування лінійної системи рівнянь?


11

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

Відповіді:


14

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

VlogcNNc2d3ddlog2logcN. Мені ще не доводиться демонструвати реальне обладнання, в якому підвищена одночасність виправдовує бідніші константи і знижує надійність методів добавки.

O(N/P)

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

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


Посилання Адама (2001) більше не працює. Я вважаю, що стаття, яку ви мали на увазі, така: ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1592790&tag=1 . "Розподілений неструктурований запам'ятовуючий алгоритм Гаусса-Сейделя для багатогрішних згладжувачів" Повідомте мене, якщо я помиляюся.
nukeguy
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.