Лис (библиотека линейной алгебры)
![]() | |
Стабильная версия | 2.1.6
/ 3 июля 2024 г. |
---|---|
Операционная система | Кросс-платформенный |
Доступно в | С , Фортран |
Тип | Библиотека программного обеспечения |
Лицензия | Новая лицензия BSD |
Веб-сайт | www.ssisc.org/lis/ |
Lis ( Библиотека итеративных решателей для линейных систем, произносится [lis]) — это масштабируемая библиотека параллельного программного обеспечения для решения дискретизированных линейных уравнений и задач на собственные значения , которые в основном возникают в результате численного решения уравнений в частных производных с использованием итерационных методов . [1] [2] [3] Хотя она предназначена для параллельных компьютеров, ее можно использовать, не задумываясь о параллельной обработке .
Функции
[ редактировать ]Лис предоставляет возможности для:
- Автоматическая настройка программы
- NUMA Гибридная реализация с поддержкой с MPI и OpenMP
- с плотной и разреженной матрицей Сменные форматы хранения
- Основные операции линейной алгебры для плотных и разреженных матриц
- Параллельные итерационные методы для решения линейных уравнений и задач собственных значений
- Параллельные предобуславливатели для итерационных методов
- четырехкратной точности с плавающей запятой Операции
- Анализ производительности
- Интерфейс командной строки для решателей и тестов
Пример
[ редактировать ]Программа C для решения линейного уравнения пишется следующим образом:
#include <stdio.h>
#include "lis_config.h"
#include "lis.h"
LIS_INT main(LIS_INT argc, char* argv[])
{
LIS_MATRIX A;
LIS_VECTOR b, x;
LIS_SOLVER solver;
LIS_INT iter;
double time;
lis_initialize(&argc, &argv);
lis_matrix_create(LIS_COMM_WORLD, &A);
lis_vector_create(LIS_COMM_WORLD, &b);
lis_vector_create(LIS_COMM_WORLD, &x);
lis_input_matrix(A, argv[1]);
lis_input_vector(b, argv[2]);
lis_vector_duplicate(A, &x);
lis_solver_create(&solver);
lis_solver_set_optionC(solver);
lis_solve(A, b, x, solver);
lis_solver_get_iter(solver, &iter);
lis_solver_get_time(solver, &time);
printf("number of iterations = %d\n", iter);
printf("elapsed time = %e\n", time);
lis_output_vector(x, LIS_FMT_MM, argv[3]);
lis_solver_destroy(solver);
lis_matrix_destroy(A);
lis_vector_destroy(b);
lis_vector_destroy(x);
lis_finalize();
return 0;
}
Системные требования
[ редактировать ]Для установки Lis требуется компилятор C. Если вы хотите использовать интерфейс Fortran, необходим компилятор Fortran, а для алгебраического многосеточного предварительного обуславливателя требуется компилятор Fortran 90. [4] Для сред параллельных вычислений необходима библиотека OpenMP или MPI. Lis поддерживает форматы Matrix Market и Harwell-Boeing для импорта и экспорта пользовательских данных.
Пакеты, использующие Lis
[ редактировать ]- Геррис
- OpenModelica
- OpenGeoSys
- СИКОПОЛЬ
- ТОПАТЬ
- Диабло
- Хороший
- известный
- Шаг
- Эхо
- openCFS
- нумгео
- бесплатноКапучино
- Андромеда
- Шлем
См. также
[ редактировать ]- Список числовых библиотек
- Метод сопряженных градиентов
- Метод стабилизации бисопряженного градиента (BiCGSTAB)
- Обобщенный метод минимальной невязки (GMRES)
- Алгоритм собственных значений
- Алгоритм Ланцоша
- Итерация Арнольди
- Krylov subspace
- Многосеточный метод
Ссылки
[ редактировать ]- ^ Акира Нисида (2010). «Опыт разработки масштабируемой программной инфраструктуры с открытым исходным кодом в Японии». Вычислительная наука и ее приложения – ICCSA 2010 . Конспекты лекций по информатике 6017. Том. 6017. Спрингер. стр. 87–98. дои : 10.1007/978-3-642-12165-4_36 . ISBN 978-3-642-12164-7 .
- ^ Хисаси Котамемори; Хидехико Хасегава; Тамито Кадзияма; Акира Нукада; Рейджи Суда и Акира Нисида (2008). «Оценка производительности параллельных разреженных матрично-векторных продуктов на SGI Altix 3700». Параллельное программирование с общей памятью OpenMP . Конспект лекций по информатике 4315. Спрингер. стр. 100-1 153–163. дои : 10.1007/978-3-540-68555-5_13 . ISBN 978-3-540-68554-8 .
- ^ Хисаси Котамемори; Хидехико Хасегава и Акира Нисида (2005). «Оценка производительности библиотеки параллельных итеративных методов с использованием OpenMP». Материалы 8-й Международной конференции по высокопроизводительным вычислениям в Азиатско-Тихоокеанском регионе (HPC Asia 2005) . IEEE. стр. 432–436. дои : 10.1109/HPCASIA.2005.74 . ISBN 0-7695-2486-9 . S2CID 6402585 .
- ^ Акихиро Фуджи; Акира Нисида и Ёсио Оянаги (2005). «Оценка порядков создания параллельных агрегатов: алгебраический многосеточный метод сглаженного агрегирования». Высокопроизводительные вычисления и инженерия . Спрингер. стр. 99–122. дои : 10.1007/0-387-24049-7_6 . ISBN 1-4419-3684-Х . S2CID 118053459 .
Внешние ссылки
[ редактировать ]- Официальный сайт
- Репозиторий разработки на GitHub
- Свободно доступная страница программного обеспечения для линейной алгебры профессора Джека Донгарры
- Репозиторий Netlib (предоставлено проектом Netlib )
- Пакеты Fedora (с разрешения проекта Fedora )
- Пакеты Gentoo (с разрешения проекта Gentoo Linux )
- Пакеты AUR (с разрешения сообщества Arch Linux )
- Пакеты FreeBSD (предоставлено проектом FreeBSD )
- Пакеты для macOS (Homebrew) (с разрешения Homebrew Project )
- Пакеты для macOS (MacPorts) (предоставлено проектом MacPorts )
- Пакеты для Windows (предоставлено проектом WHPC)
- Пакеты для Mingw-w64 (предоставлено проектом Mingw-w64 )
- Пакеты Spack (с разрешения Ливерморской национальной лаборатории Лоуренса )
- Числовые библиотеки
- Численная линейная алгебра
- Программное обеспечение для научного моделирования
- Библиотеки C (язык программирования)
- Библиотеки Фортрана
- Бесплатное программное обеспечение для моделирования
- Бесплатное программное обеспечение, написанное на C.
- Бесплатное программное обеспечение, написанное на Фортране.