Подскажите открытую библиотеку для матричных вычислений
чем занимаешься если не секрет?
на чем считаешься?
Eigen, это вроде самое толковое, что на чистом cxx есть на тему матриц.
Посоветовал бы взглянуть на Я правильно понимаю, что стоит сразу ориентироваться на 3-ю версию, не смотря на то, что она бета?
Но к сожалению для текущей задачи похоже не очень подходит, так как ни ленточных матриц, ни сопряжённых градиентов там нет. А значит всё равно предполагается большой объём работы по встраиванию.
А алгоритмы типа сопр. градиентов там пишутся очень легко, просто переписываешь твой любимый учебник по ЧМам на cxx практически дословно.
Если будут вопросы — обращайся, помогу чем смогу.
PETSC, SuperLU, MUMPS, WSMP
Спасибо, посмотрел, там надолго разбираться
К сожалению нигде нет явной поддержки ленточных матриц.
Складывается впечатление, что я как-то не так ищу (ну или они не настолько эффективнее, чем обычные разреженные, чтобы отдельно их реализовывать).
чем занимаешься если не секрет?
Да мы тут пытаемся использовать схемы неполной факторизации типа Булеева/Холецкого для предобусловливания
методов сопряженных/бисопряженных градиентов.
И на этом считать свои задачи.
Например популярностью пользуется рост кристаллов.
на чем считаешься?
Пока на РС (тут как раз OpenMP не помешает - ядер всё дольше и больше).
Но в принципе говорят, что когда "плавать научусь", может и "воды нальют".
Ленточных матриц полгода назад не было действительно, но уже были разреженные. В принципе, я мог бы туда запилить и ленточные, но сейчас со временем напряги.
А алгоритмы типа сопр. градиентов там пишутся очень легко, просто переписываешь твой любимый учебник по ЧМам на cxx практически дословно.
То есть это без использования механизма плагинов?
Если будут вопросы — обращайся, помогу чем смогу.
Спасибо, учту
То есть это без использования механизма плагинов?Не понял, что имеется в виду. Eigen, если что, template-based, там кроме хедеров ничегог и нет.
механизм расширения .
Его надо использовать? Или просто править код библиотеки под себя?
Там есть Его надо использовать? Или просто править код библиотеки под себя?
A typical use case is, for instance, to make Eigen compatible with another API.Зачем тебе это?
Или просто править код библиотеки под себя?Желательно не просто править, а слать патчи разрабам, если сделаешь что-нибудь толковое.
Но решил уточнить.
Будут патчи - конечно вышлю.
Оставить комментарий
durka82
Нужна библиотека (язык не принципиален - лучше C++ ну или Fortran с которой можно было бы работать из Фортрана.Чтобы она распространялась в кодах и можно было без проблем дописать что-то своё (а можно потом и включить в библиотеку).
Собственно нужны ленточные матрицы и метод сопряженных/бисопряженных градиентов с предобусловливанием.
Но можно и просто матричные вычисления (просто чем больше надо писать самому, тем меньше смысла в такой библиотеке).
Желательно с поддержкой OpenMP и MPI.
Основная цель: избежать/минимизировать написание своего инфраструктурного "велосипеда".