Портативный расширяемый набор инструментов для научных вычислений
Стабильная версия | 3.20 / 28 сентября 2023 г |
---|---|
Репозиторий | |
Операционная система | Linux , Unix , Mac OS X , Windows |
Доступно в | Си, Питон, Фортран |
Тип | Программное обеспечение для научного моделирования |
Лицензия | Лицензия BSD, 2 пункта |
Веб-сайт | домашнее животное |
Портативный расширяемый набор инструментов для научных вычислений ( PETSc , произносится как PET-see; буква S означает молчание) представляет собой набор структур данных и процедур, разработанных Аргоннской национальной лабораторией для масштабируемого ( параллельного ) решения научных приложений, смоделированных уравнениями в частных производных. . Он использует стандарт интерфейса передачи сообщений (MPI) для всей передачи сообщений. PETSc — наиболее широко используемая в мире библиотека параллельного численного программного обеспечения для уравнений в частных производных и вычислений с разреженной матрицей . PETSc получил награду R&D 100 в 2009 году. [1] [2] [3] Группа основных разработок PETSc выиграла премию SIAM/ACM в области вычислительной науки и техники за 2015 год. [4]
PETSc предназначен для использования в крупномасштабных прикладных проектах, многие текущие проекты в области вычислительной техники построены на основе библиотек PETSc . Его тщательно продуманная конструкция позволяет опытным пользователям иметь детальный контроль над процессом решения. PETSc включает в себя большой набор параллельных средств решения линейных и нелинейных уравнений , которые легко использовать в кодах приложений, написанных на C , C++ , Fortran , а теперь и на Python . PETSc предоставляет множество механизмов, необходимых в параллельном коде приложения, например, простые параллельные процедуры сборки матриц и векторов , которые позволяют перекрывать обмен данными и вычисления . Кроме того, PETSc включает поддержку параллельных распределенных массивов, полезных для методов конечных разностей . [5]
Компоненты
[ редактировать ]
PETSc состоит из множества компонентов, состоящих из основных классов и вспомогательной инфраструктуры. Пользователи обычно взаимодействуют с объектами классов самого высокого уровня, соответствующими их приложению, важными объектами более низкого уровня, такими как векторы, и могут настраивать или расширять любые другие. Все основные компоненты PETSc имеют расширяемую архитектуру плагинов.
Возможности и модули
[ редактировать ]PETSc предоставляет множество функций для параллельных вычислений, разбитых на несколько модулей:
- Наборы индексов, включая перестановки , для индексации в векторы, перенумерации и т. д.
- Параллельные векторы ; и матрицы (как правило, разреженные )
- Рассеивает (обрабатывает передачу информации о призрачных точках) и собирает (противоположно рассеянию)
- Управление данными для параллельных структурированных и неструктурированных сеток
- Несколько редких хранения форматов
- Масштабируемые параллельные предобуславливатели , включая многосеточные и разреженные прямые решатели
- Krylov subspace methods
- Параллельные нелинейные решатели, такие как метод Ньютона и нелинейный GMRES.
- Решатели с параллельным шагом времени ( ODE и DAE )
- Решатели параллельной оптимизации , такие как BFGS.
- Автоматическое профилирование операций с плавающей запятой и памяти . использования
- Согласованный интерфейс
- Интенсивная проверка ошибок
- Переносимость в UNIX , Mac OS X и Windows.
См. также
[ редактировать ]Примечания
[ редактировать ]- ^ «Архивная копия» (PDF) . Архивировано из оригинала (PDF) 12 марта 2013 г. Проверено 1 мая 2013 г.
{{cite web}}
: CS1 maint: архивная копия в заголовке ( ссылка ) - ^ «PETSc выигрывает премию R&D 100 в 2009 году | Аргоннский вычислительный центр» . Alcf.anl.gov. 21 июля 2009 г. Проверено 1 мая 2013 г.
- ^ Чт, 30.07.2009 - 5:23 (30.07.2009). «PETSc Release 3.0 расширяет возможности» . Rdmag.com . Проверено 1 мая 2013 г.
{{cite web}}
: CS1 maint: числовые имена: список авторов ( ссылка ) - ^ «Премия SIAM/ACM в области вычислительной науки и техники» . сайт сиам.орг. 18 марта 2015 г. Проверено 19 апреля 2015 г.
- ^ «Архивная копия» (PDF) . Архивировано из оригинала (PDF) 5 августа 2013 г. Проверено 1 мая 2013 г.
{{cite web}}
: CS1 maint: архивная копия в заголовке ( ссылка )
Библиография
[ редактировать ]- Руководство пользователя PETSc , Сатиш Балай, Шриранг Абхьянкар, Марк Ф. Адамс, Джед Браун, Питер Брюн, Крис Бушельман, Виктор Эйджхаут, Уильям Д. Гропп, Динеш Кошик, Мэтью Г. Непли, Лоис Керфман Макиннес , Карл Рапп, Барри Ф. Смит и Хун Чжан, ANL-95/11, версия 3.5, Аргоннская национальная лаборатория, июнь 2014 г.
- Эффективное управление параллелизмом в библиотеках объектно-ориентированного числового программного обеспечения , Сатиш Балай, Уильям Д. Гропп, Лоис Керфман Макиннес, Барри Ф. Смит, Современные программные инструменты в научных вычислениях, изд. Брюасет и др., стр. 163–202, 1997.
- Численное моделирование геодинамических процессов с помощью портативного расширяемого набора инструментов для научных вычислений , Р. Ф. Кац, М. Г. Непли, Б. Смит, М. Шпигельман и Э. Т. Кун, Физика Земли и недр планет, 163, стр. 52-68, 2007.
- Эд Бюлер: «PETSc для уравнений в частных производных: численные решения на C и Python», SIAM, ISBN 978-1-611976-30-4 (2020).