Linal

(библиотека распространяется по лицензии BSD из трех пунктов)

Библиотека Linal содержит подпрограммы линейной алгебры, в том числе векторные и матрично-векторные операции:

  • вычисление суммы векторов;
  • вычисление норм и скалярных произведений;
  • умножение матрицы на вектор;
  • решатель системы линейных уравнений;
  • ввод/вывод векторов и матриц.

Скачать linal-1.0.tar.bz2 (28 Кб)»

Поддерживаемые бэкэнды

Решатель системы линейных уравнений:

  • для заполненных матриц — метод Гаусса;
  • для разреженных матриц:
    • SuperLU;
    • UMFPACK;
    • GMRES (встроено, сторонние библиотеки для поддержки устанавливать не нужно).

Подпрограммы векторных и матрично-векторных операций:

  • простой однопроцессорный вариант;
  • OpenMP;
  • CUDA.

При наличии OpenMP, поддержка включается автоматически.

При наличии CUDA, собирается библиотека linal_cu с тем же API, которая выполняет все векторные и матрично-векторные операции на GPU. При использовании библиотеки с поддержкой CUDA считается, что все функции для векторных и матрично-векторных операций получают на вход массив, содержащийся в памяти GPU. Функции ввода-вывода работают с массивами, находящимися в памяти хоста.

Из бекендов решателя, GPU поддерживает только GMRES. Одновременно использовать linal и linal_cu нельзя.

Все функции библиотеки поддерживают типы float и double. Однако, следует иметь ввиду, что, при использовании float, в бекенде UMFPACK происходит конвертация в double, так как UMFPACK не поддерживает float.

Пример работы с библиотекой смотри в файле tests/test_solver.cpp.

Оставить комментарий

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