美文网首页
编译安装BLAS和LAPACK

编译安装BLAS和LAPACK

作者: Maslino | 来源:发表于2016-11-20 14:25 被阅读7379次

    之前在帮一位校友安装NumPy和SciPy的时候遇到不少问题。这两个Python包都依赖Fortran库BLAS和LAPACK. 这位校友在实验室机器上的用户没有sudo权限,所以无法通过系统的包管理器来安装依赖库,只好逐个编译安装。经过苦苦寻觅,终于在Stack Overflow找到了编译安装的方法。现把安装过程在CentOS 6.4上重现一遍。

    先在用户主目录下面创建src目录,然后切换到src目录下操作。

    mkdir ~/src
    cd ~/src
    

    安装BLAS

    1、准备源码

    wget http://www.netlib.org/blas/blas.tgz
    tar zxf blas.tgz
    cd BLAS-3.5.0/
    

    2、编译

    如果是32位系统,使用GNU的g77或gfortran编译器来编译:

    g77 -O2 -fno-second-underscore -c *.f
    gfortran -O2 -std=legacy -fno-second-underscore -c *.f
    

    如果是64位系统,使用GNU的g77或gfortran编译器来编译:

    g77 -O3 -m64 -fno-second-underscore -fPIC -c *.f
    gfortran -O3 -std=legacy -m64 -fno-second-underscore -fPIC -c *.f
    

    如果使用的是Intel的Fortran编译器,则:

    ifort -FI -w90 -w95 -cm -O3 -unroll -c *.f
    

    注意:

    • 请根据情况选择上述5个命令中的一个执行
    • 在编译BLAS、LAPACK、NumPy和SciPy的时候,所选择的Fortran编译器必须要保持一致
    • 在下述LAPACK的编译安装中,需要使用Fortran 90编译器,因此不应该使用g77来编译BLAS

    3、后续工作

    ar r libfblas.a *.o
    ranlib libfblas.a
    rm -rf *.o      # 清理文件
    export BLAS=~/src/BLAS-3.5.0/libfblas.a # 导出BLAS环境变量
    

    安装LAPACK

    1、准备源码

    wget http://www.netlib.org/lapack/lapack.tgz
    tar zxf lapack.tgz
    cd lapack-3.6.0/
    

    2、编译

    cp INSTALL/make.inc.gfortran make.inc   # On Linux with lapack-3.2.1 or newer
    make lapacklib
    

    注意:在执行make lapacklib之前,编辑make.inc文件,给OPTSNOOPT这两个设置都加上-fPIC选项。如果是64位系统,还需要加上-m64选项。修改后,看起来像这样:

    FORTRAN  = gfortran 
    OPTS     = -O2 -frecursive -fPIC -m64
    DRVOPTS  = $(OPTS)
    NOOPT    = -O0 -frecursive -fPIC -m64
    LOADER   = gfortran
    

    3、后续工作

    make clean      # 清理文件
    export LAPACK=~/src/lapack-3.6.0/   # 导出LAPACK环境变量
    

    参考资料

    相关文章

      网友评论

          本文标题:编译安装BLAS和LAPACK

          本文链接:https://www.haomeiwen.com/subject/skcypttx.html