我需要解一个线性方程Ax =b,其中A是一个五对角矩阵(很多0),其维数很大(直到n=1000亿)。
我目前正在使用C(umfpack_di_solve(.)中Suitesparse的UMFPACK包)。我被要求用另一个来验证我的结果。
我的问题是:我需要让它在C(或C++)中工作,但我在Windows 10下。我在CLion中使用WSL-2,用Ubuntu终端编译我的代码。
我面临着很多问题,尤其是在cmake方面。
你会推荐什么样的解决者?
发布于 2022-12-23 20:06:52
由于您使用的是带状矩阵(而不是一般的稀疏矩阵),您可以使用LAPACK作为参考。虽然它是一个Fortran库,但是有多个C (LAPACKE,即用apt安装liblapacke64-dev )或C++ (拉帕基,不能通过apt)接口可用。
我看到的主要缺点是LAPACK带状矩阵格式不同于UMFPACK的CSC格式,也就是说,您必须将矩阵从一种格式转换为另一种格式。
好处是有一个明确的64位索引版本,这是您的问题大小所需要的。大多数不是为分布式MPI计算构建的稀疏求解器只支持32位索引。
https://softwarerecs.stackexchange.com/questions/84593
复制相似问题