加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Linux环境下Lapack库的编译与使用测试

(2017-08-24 16:04:09)

Linux环境下Lapack库的编译与使用测试

LAPACK,其名为Linear Algebra PACKage的缩写,是一以Fortran编程语言写就,用于数值计算的函式集。 LAPACK提供了丰富的工具函式,可用于诸如解多元线性方程式、线性系统方程组的最小平方解、计算特征向量、用于计算矩阵QR分解的Householder转换、以及奇异值分解等问题。

Linux系统(CentOS 64位)下的编译与测试使用过程简述如下。

1)下载Lapack源码,地址:http://www.netlib.org/lapack/#_lapack_version_3_7_1

2)将下载后的文件复制解压到/usr/local/src文件夹下。

3)进入lapack-3.7.1文件夹下,打开终端,修改make.inc.example名称为make.inc

cp make.inc.example make.inc

4make

make

5make结束后在lapack-3.7.1文件夹下生成三个文件,分别为liblapack.a,libtmglib.a,libbrefblas.a

6)将这三个文件复制到/urs/local/lib文件夹下

cp *.a /urs/local/lib

7)编译完成,进行测试,在/urs/local/lib文件夹下建立一个test.f90文件,里面的代码如下:

program main

    implicit none

    INTEGER :: N, LDA, LDB

    INTEGER :: NRHS

    INTEGER :: INFO

    INTEGER :: IPIV(4)

    REAL(8) :: A(4,4), B(4,1)

   

    N=4;LDA=4;LDB=4

    NRHS=1

   

    A=reshape((/1.80,2.88,2.05,-0.89,&

                5.25,-2.95,-0.95,-3.80,&

                1.58,-2.69,-2.90,-1.04,&

                -1.11,-0.66,-0.59,0.80/),(/4,4/))

    B=reshape((/9.52,24.35,0.77,-6.22/),(/4,1/))

 

    call DGESV( N, NRHS, A, LDA, IPIV, B, LDB, INFO )

   

    write(*,*) "Solution:"

    write(*,'(f8.3)') B

    write(*,*) "INFO=", INFO

   

    stop

end program

8)求解,执行命令:

gfortran testf90 liblapack.a librefblas.a

9)结束后会在lapack-3.7.1文件夹下生成一个a.out文件,执行命令:

./a.out,可以看到a.out里面输出为:

Solution:

-1.367

-9.780

10.529

-42.062

INFO=0

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有