Вопрос или проблема
Чтобы решить уравнение Пуассона, я в настоящее время использую код, который использует библиотеку Hypre с MPI. Я хотел бы узнать, что еще существует, и есть ли какой-либо принятый стандарт в индустрии, то есть что используют большинство людей?
Библиотека должна уметь работать для 2D и 3D случаев, быть относительно легко интегрированной в существующий код и совместимой с MPI. Она должна работать либо с Fortran (предпочтительно), либо с C++/C.
Rheolef является программной средой, которая служит удобной лабораторией для вычислений, связанных с методами конечных элементов. Rheolef — это как C++ библиотека, так и набор команд для программирования в Unix shell, предоставляющий алгоритмы и структуры данных.
Среди его особенностей:
- Среда метода конечных элементов с массивно распределенной памятью, основанная на MPI
- Проблемы Пуассона в размерности d=1,2,3
Может быть, стоит взглянуть на: https://freefem.org/
Я использовал его для решения уравнения Пуассона на 2D и 3D неструктурированных сетках с использованием метода конечных элементов.
Какое-то время назад они реализовали поддержку MPI:
https://doc.freefem.org/documentation/parallelization.html
Команда, разработавшая этот решатель, все еще активна (исследователи из лаборатории JLL университета Париж VI).
Ответ или решение
Чтобы эффективно решать уравнение Пуассона с поддержкой MPI, стоит рассмотреть несколько библиотек и решений, которые широко используются в IT-сообществе и удовлетворяют заданным требованиям.
Hypre – вы уже используете эту библиотеку, и это один из наиболее популярных инструментов для решения уравнений в частных производных, включая уравнение Пуассона. Эта библиотека хорошо зарекомендовала себя благодаря своей способности масштабироваться на больших количествах процессоров при помощи интерфейса MPI.
Альтернативные решения:
-
Rheolef:
Rheolef представляет собой мощную среду программирования для вычислений, связанных с конечными элементами. Эта библиотека поддерживает MPI, что позволяет решать задачи в сильно распределенной памяти, и может применяться для задач в 1, 2 и 3 измерениях. Она написана на C++, что позволяет её легко интегрировать с существующими системами на этом языке. Однако поддержка Fortran требует дополнительных обёрток. -
FreeFEM:
FreeFEM – это гибкая среда для моделирования на основе конечных элементов, поддерживающая как 2D, так и 3D сетки. С недавних пор FreeFEM обеспечивает поддержку MPI, что позволяет задействовать многопроцессорные вычисления. Этот инструмент активно разрабатывается группой исследователей, и у него есть хорошая документация для интеграции и использования. Тем не менее, написан он на собственном скриптовом языке, что потребует адаптации при интеграции с вашими задачами на Fortran или C++.
Преимущества и недостатки:
- Hypre: Хорошо оптимизирован и широкого используется, но он требует предварительного изучения, если вы хотите использовать все возможности эффективного параллелизма.
- Rheolef: Легко интегрируется с C++ проектами, но требуется дополнительное внимание при работе с Fortran.
- FreeFEM: Отлично подходит для нетривиальных сеток и имеет активную поддержку, но требует знаний своего уникального языка.
SEO и ключевые моменты:
При выборе инструментов для научных или инженерных расчетов, таких как библиотеки для решения уравнений Пуассона с MPI, важно учитывать читаемость документации, активность поддержки и сообщества, а также возможности интеграции с вашими текущими проектами. Все упомянутые библиотеки обеспечивают высокий уровень параллелизма и эффективны для задач как в двумерных, так и в трехмерных пространственных решениях.