如何在Linux群集上构建用于C ++的BLAS和LAPACK?

问题描述

我正在处理一个很大的计算问题。为了降低方矩阵中一组线性方程的计算速度,我使用了lapackblas。为了在笔记本电脑上获取这些库(Ubuntu 2020),我运行了以下命令

sudo apt-get install libblas-dev liblapack-dev

然后我通过输入以下内容链接到编译时的代码

g++ main.cpp -llapack -lblas

但是,我正在处理的群集似乎未同时安装两个库。它在群集上速度较慢,但​​在芯片上却更好。它可以运行,所以我认为它安装了lapack个库,但没有安装blas。我想同时安装两者。

我该如何构建和编译lapackblas库,而没有 不能访问root或apt-get

这是一个简短的测试脚本。

#include <iostream>
#include <vector>

extern "C" void dgesv_( int *n,int *nrhs,double  *a,int *lda,int *ipiv,double *b,int *lbd,int *info  );

int main() {
    int SIZE = 3;
    int nrhs = 1; // one column in b
    int lda = SIZE;
    int ldb = SIZE;
    std::vector<int> i_piv(SIZE,0);  // pivot column vector
    int info;
    std::vector<double> A(SIZE*SIZE,0); // sq mat with 0's
    A = {5,2,8,9,7,10,3,4};
    std::vector<double> b(SIZE);
    b = {22,13,17};

    dgesv_( &SIZE,&nrhs,&*A.begin(),&lda,&*i_piv.begin(),&*b.begin(),&ldb,&info );
    return 0;
}

我想用

构建它
g++ main.cpp -L/path/to/lapack -L/path/to/blas -llapack -lblas

其中b矩阵被解决方案替换,解决方案为1.71,1.29,0.18(这是任意的,因此我没有在代码中提供“ print_matrix”函数来减少混乱)。

谢谢您的时间。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)