Эффективный решатель уравнений Пуассона, совместимый с MPI

Вопрос или проблема

Чтобы решить уравнение Пуассона, я в настоящее время использую код, который использует библиотеку 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.

Альтернативные решения:

  1. Rheolef:
    Rheolef представляет собой мощную среду программирования для вычислений, связанных с конечными элементами. Эта библиотека поддерживает MPI, что позволяет решать задачи в сильно распределенной памяти, и может применяться для задач в 1, 2 и 3 измерениях. Она написана на C++, что позволяет её легко интегрировать с существующими системами на этом языке. Однако поддержка Fortran требует дополнительных обёрток.

  2. FreeFEM:
    FreeFEM – это гибкая среда для моделирования на основе конечных элементов, поддерживающая как 2D, так и 3D сетки. С недавних пор FreeFEM обеспечивает поддержку MPI, что позволяет задействовать многопроцессорные вычисления. Этот инструмент активно разрабатывается группой исследователей, и у него есть хорошая документация для интеграции и использования. Тем не менее, написан он на собственном скриптовом языке, что потребует адаптации при интеграции с вашими задачами на Fortran или C++.

Преимущества и недостатки:

  • Hypre: Хорошо оптимизирован и широкого используется, но он требует предварительного изучения, если вы хотите использовать все возможности эффективного параллелизма.
  • Rheolef: Легко интегрируется с C++ проектами, но требуется дополнительное внимание при работе с Fortran.
  • FreeFEM: Отлично подходит для нетривиальных сеток и имеет активную поддержку, но требует знаний своего уникального языка.

SEO и ключевые моменты:

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

Оцените материал
Добавить комментарий

Капча загружается...