arn*_*rne 14 fortran blas sparse-matrix fortran90 fortran95
我正在寻找一个库来处理fortran 90/95中的稀疏矩阵.我只需要非常基本的操作,如矩阵向量乘法.你建议我用什么?
我已经搜索过了一个扩展名(?)到BLAS,称为"稀疏blas",在爆炸技术论坛规范的第3章中有记录:
http://www.netlib.org/blas/blast-forum/ ,
看起来很理想 根据该文档,库应该有一个fortran 95接口.但是,我无法在任何可以下载的地方找到该规范的实际实现.我有点认为fortran 95稀疏blas规范并没有在任何地方真正实现?反正不是开源的.
我还找到了一个名为sparsekit的库:
http://people.sc.fsu.edu/~jburkardt/f_src/sparsekit/sparsekit.html
任何人都有这两个中的任何一个的经验,或任何其他稀疏矩阵库为fortran 90/95?我想建议使用哪一个,以及从哪里获取它(在sparsekit的情况下,源代码可通过上面的链接获得).对于稀疏矩阵,有没有类似"标准"的东西,比如BLAS用于密集矩阵?
干杯,
阿恩
arn*_*rne 13
好的,我会部分回答我自己的问题:
哪里可以找到完整的F95实现稀疏BLAS,由@alexurba提供:
http://www.netlib.org/toms/818
就是这样!此脚本在您运行它的文件夹中创建所有源代码(我以前从未见过以这种方式提供的软件).
要使INSTALL脚本工作,我需要做一些更改:安装说明告诉您编辑INSTALL脚本并选择适当的"arch".您的选择是:AIX,ALPHA,CRAY,HP,NAG,SGI和SUN.这些似乎都不适合我,因为我正在使用linux,而且我在这台计算机上使用的唯一fortran编译器是gfortran.我不太明白这个选项的目的,但我所做的工作如下:
1)在INSTALL中,通过设置变量SB_ARCH ='GNU'来组成一个名为GNU的新"arch".2)在SOFTWARE/Makefile中将FC = f90更改为FC = gfortran,3)在TESTER中/将文件Makefile.NAG复制到Makefile.GNU,将FC = f90更改为FC = gfortran,并更改单词'NAG'的所有实例'到'GNU'.(您可能还想更改Makefile中的FFLAGS选项.)
在此之后我运行INSTALL,然后运行TESTER/test_all,并且测试吐出"0.000 ......"作为错误,我认为这意味着一切正常.
我必须说我发现这个源代码异常困难.幸运的是,当搜索"fortran 90稀疏矩阵库"时,这个帖子在谷歌上出现了相当高的水平.
我的最终解决方案:具有讽刺意味的是,在最终找到Sparse BLAS的完整实现后,我已经决定对我的问题使用更直接的方法更好,因为我可能需要的是矩阵向量乘法:找出什么是稀疏矩阵要使用的表示(压缩稀疏行(CSR)似乎适合我的问题),从稀疏BLAS源代码中挖出相应的矩阵向量乘法例程,看看它是如何输入的,并直接在我的代码中使用它.
归档时间: |
|
查看次数: |
10886 次 |
最近记录: |