Решатели разреженной линейной алгебры для C # - PullRequest
1 голос
/ 10 сентября 2009

Я работаю над экспериментальной реализацией алгоритма нерастяжимой ткани Goldenthal et.al в C #.

Сначала я использовал Math.NET Iridium для сборки и решения матриц, но быстро заменил это на dnAnalytics, так как последний позволяет мне повторно использовать матрицы, почти исключая дальнейшее распределение памяти, что важно для производительности в реальном времени (маленькие ткани) или итеративное решение в целом.

Проблема в том, что решатели (первичный интерес - это LU и Bi-CG) в dnAnalytics по-прежнему распределяют матрицы и векторы за кулисами, вместо того, чтобы повторно использовать прошлые распределения.

=> Существуют ли какие-либо редкие библиотеки линейной алгебры, которые повторно используют память «из коробки», или мне придется самому переписывать код?

1 Ответ

1 голос
/ 10 сентября 2009

Этот совет может быть излишним, но при использовании dnAnalytics обязательно используйте библиотеку ядра Intel Math. Как бы ни была заманчива идея чистой реализации на C #, я обнаружил, что разница в производительности ошеломляет; Плотные системы были решены примерно в сто раз быстрее.

...