【发布时间】:2012-09-08 06:06:43
【问题描述】:
我正在寻找一个在 fortran 90/95 中处理稀疏矩阵的库。我只需要非常基本的操作,比如矩阵向量乘法。你建议我用什么?
我搜索了一个名为“sparse blas”的 BLAS 扩展(?),记录在爆炸技术论坛规范的第 3 章中:
http://www.netlib.org/blas/blast-forum/,
似乎很理想。根据该文档,该库应该有一个 fortran 95 接口。但是,我无法在可以下载的任何地方找到该规范的实际实现。我的印象是,fortran 95 sparse blas 规范并没有真正在任何地方实现?反正不是开源的。
我还发现了一个名为 sparsekit 的库:
http://people.sc.fsu.edu/~jburkardt/f_src/sparsekit/sparsekit.html
有人对这两个中的任何一个或任何其他用于 fortran 90/95 的稀疏矩阵库有任何经验吗?我想就使用哪一个以及在哪里获得它的建议(在 sparsekit 的情况下,源代码可通过上述链接获得)。稀疏矩阵有什么“标准”,比如 BLAS 是密集矩阵吗?
干杯,
阿恩
【问题讨论】:
-
F95,它是语言的一个小版本,通常在 F90 之下。我已经有一段时间没有对大型矩阵做过任何事情了,但这似乎是people.sc.fsu.edu/~jburkardt/f_src/blas2/blas2.html F90 版本。
-
感谢 Idigas,但我不这么认为。在我看来,您链接到的是 BLAS 库,而“稀疏 blas”不是其中的一部分。例如,应该有一个名为“duscr_begin”(或者可能是“blas_duscr_begin”)的子程序(根据规范),它是用于初始化稀疏矩阵的子程序,我在 BLAS 库中的任何地方都没有找到它。我什至从netlib.org/sparse-blas/index.html 下载了所有文件,并且没有任何运气地执行“grep -i duscr_begin *.f”。我发现这很令人困惑。
-
啊,可以。上次只是匆匆看了一下。
-
实际上我认为稀疏 BLAS 的 F90 接口恰好在您链接到的页面上。只需从:http://www.netlib.org/toms/818 下载 shell 脚本包并通过 /bin/sh 运行它。然后将创建 *.f90 文件。如果您没有可用的 Bourne shell(例如,如果您在 Windows 下工作),请告诉我。
标签: fortran sparse-matrix fortran90 blas fortran95