我正在研究Goldenthal et.al在C#中不可扩展的布料算法的实验性实现。
首先,我使用Math.NET Iridium来组装和解决矩阵,但很快用dnAnalytics取代了它,因为后者允许我重用矩阵,几乎消除了进一步的内存分配,这对于实时性能(小布料)很重要或一般的迭代求解。
问题是dnAnalytics中的解算器(主要关注的是LU和Bi-CG)仍然在幕后分配矩阵和向量,而不是重用过去的分配。
=>是否有任何稀疏的线性代数库可以重复使用内存,或者我是否必须自己重写代码?
答案 0 :(得分:1)
此建议可能是多余的,但在使用dnAnalytics时,请确保使用Intel Math内核库。由于纯粹的C#实现的想法听起来很诱人,我发现性能差异是惊人的;密集系统的解决速度提高了大约一百倍。