其他分享
首页 > 其他分享> > 非root用户安装科学计算包blas、lapack

非root用户安装科学计算包blas、lapack

作者:互联网

一、环境准备

依赖库至少需要 gfortran、cmake。其他不能确定

二、下载lapack安装包

下载地址:https://www.netlib.org/lapack/ 
【lapack包里已经包含了blas包了,无需重新下载】

三、解压编译安装

tar -zxvf lapack-3.10.0.tar.gz
cd lapack-3.10.0/
解压之后它里面会含有BLAS,CBLAS,LAPACKE等文件夹,其中BLAS是BLAS的源码,CBLAS是BLAS的C语言接口
在make之前,需要先创建一个make.inc文件,可以直接根据make.inc.example创建
cp make.inc.example make.inc
1、修改Makefile文件
如果是使用gfortran,则无须更改make.inc里的内容,否则需要根据系统环境和编译器修改文件里对应的选项。LAPACK依赖BLAS,因此在编译LAPACK前需要提供BLAS包,所幸LAPACK里已经集成了BLAS包,但默认并不编译它。要想编译LAPACK前先编译BLAS,需要修改一下makefile: 
vim Makefile

 然后make编译
2、cd LAPACKE目录下,再次进行make操作!~【重要】
两处都make成功后,会在目录lapack-3.10.0下生成 liblapack.a、liblapacke.a、librefblas.a、libtmglib.a 这个4个静态库文件

把这4个静态库文件,拷贝到/usr/local/lib/目录下(非root用户拷贝到自己创建目录下)
cp *.a /BIGDATA2/nscc_sci_1/xujb/usr/local/lib/
把lapack目录下的include里的头文件拷贝到/usr/local/include/目录下(非root用户拷贝到自己创建目录下)
cd LAPACKE/include
cp *.h /BIGDATA2/nscc_sci_1/xujb/usr/local/include/

至此lapack 和 blas已经安装好了!

四、测试lapack和blas包是否安装成功

测试代码(test.c)放在最后面
使用软连接进行编译
gcc test.c -o test -I/BIGDATA2/nscc_sci_1/xujb/usr/local/include -L/BIGDATA2/nscc_sci_1/xujb/usr/local/lib -llapacke -llapack -lrefblas -lgfortran -lm -w
执行./test

 

vim test.c

#include <stdio.h>
#include <lapacke.h>
int main (int argc, const char * argv[])
{
  double a[5*3] = {1,2,3,4,5,1,3,5,2,4,1,4,2,5,3};
  double b[5*2] = {-10,12,14,16,18,-3,14,12,16,16};
  lapack_int info,m,n,lda,ldb,nrhs;
  int i,j;

  m = 5;
  n = 3;
  nrhs = 2;
  lda = 5;
  ldb = 5;

  info = LAPACKE_dgels(LAPACK_COL_MAJOR,'N',m,n,nrhs,a,lda,b,ldb);

  for(i=0;i<n;i++)
  {
    for(j=0;j<nrhs;j++)
    {
      printf("%lf ",b[i+ldb*j]);
    }
      printf("\n");
  }
  return(info);
}

  

 


 

 

标签:lapack,local,blas,BLAS,usr,include,root,make
来源: https://www.cnblogs.com/babyclass/p/16358589.html