Como construir e vincular bibliotecas BLAS e LAPACK manualmente para uso em cluster?

Como construir e vincular bibliotecas BLAS e LAPACK manualmente para uso em cluster?

Estou fazendo uso de uma função de pivotamento parcial chamada gesv. Para fazer com que as bibliotecas fizessem isso acontecer em C++, usei um comando de uma linha deInstalando pacotes BLAS e LAPACK.

sudo apt-get install libblas-dev liblapack-dev

Então consegui vincular as bibliotecas adicionando o seguinte às instruções de compilação

g++ main.cpp -llapack -lblas

Obtive uma velocidade tremenda em meu laptop (Linux 2020), mas quando comecei a rodar em um cluster, o método fica extremamente lento ao executar o mesmo caso (grande). Não acho que ambas as bibliotecas estejam instaladas no cluster. O código é executado, então parece que aquele que fornece o aumento de velocidade não está no cluster que estou usando.

É possível construir e vincular as bibliotecas lapacke blas"manualmente" em vez de executar o apt-getcomando?

Obrigado pelo seu tempo.

Responder1

BLAS

  • Baixe a versão mais recente do BLAS

  • Abra um terminal e vá para o diretório onde você o salvou

tar -xvf blas-3.8.0.tgz  # unzip the blas source files
cd BLAS-3.8.0/ 
make
mv blas_LINUX.a libblas.a
mv *.a path/to/lib  # move the blas lib to the library you will be including at compile

LAPACK

  • Baixe a versão mais recente doLAPACK
tar -xvf lapack-3.9.0.tar.gz
cd lapack-3.9.0/
cp make.inc.example make.inc  # use example make as make
make
cp *.a path/to/lib

Agora que as bibliotecas foram construídas e armazenadas em path/to/lib, o pequeno código de exemplo da pergunta pode ser compilado.

g++ main.cpp -L/path/to/lib -llapack -lblas -lgfortran  # compiles the code
./a.out  # runs the code

informação relacionada