C#的稀疏线性代数求解器

时间:2009-09-10 14:39:09

标签: c# performance memory linear-algebra sparse-matrix

我正在研究Goldenthal et.al在C#中不可扩展的布料算法的实验性实现。

首先,我使用Math.NET Iridium来组装和解决矩阵,但很快用dnAnalytics取代了它,因为后者允许我重用矩阵,几乎消除了进一步的内存分配,这对于实时性能(小布料)很重要或一般的迭代求解。

问题是dnAnalytics中的解算器(主要关注的是LU和Bi-CG)仍然在幕后分配矩阵和向量,而不是重用过去的分配。

=>是否有任何稀疏的线性代数库可以重复使用内存,或者我是否必须自己重写代码?

1 个答案:

答案 0 :(得分:1)

此建议可能是多余的,但在使用dnAnalytics时,请确保使用Intel Math内核库。由于纯粹的C#实现的想法听起来很诱人,我发现性能差异是惊人的;密集系统的解决速度提高了大约一百倍。