1 votes

Comment construire et lier les bibliothèques BLAS et LAPACK à la main pour les utiliser sur un cluster ?

Je me sers d'une fonction de pivotement partiel du nom de gesv . Pour obtenir les bibliothèques nécessaires à la réalisation de ce projet en C++, j'ai utilisé une commande en une ligne à partir de Installation des paquets BLAS et LAPACK .

sudo apt-get install libblas-dev liblapack-dev

Ensuite, j'ai pu lier les bibliothèques en ajoutant ce qui suit aux instructions de compilation

g++ main.cpp -llapack -lblas

J'ai obtenu des gains de vitesse considérables sur mon ordinateur portable (Linux 2020), mais lorsque j'ai commencé à l'exécuter sur un cluster, la méthode est extrêmement lente lorsqu'on exécute le même (gros) cas. Je ne pense pas que les deux bibliothèques soient installées sur le cluster. Le code s'exécute, donc il semble que celui qui fournit l'augmentation de vitesse n'est pas sur le cluster que j'utilise.

Est-il possible de construire puis de relier le lapack y blas bibliothèques à la "main" plutôt que de faire le apt-get commande ?

Merci pour votre temps.

2voto

Nat Geo Points 86

BLAS

  • Téléchargez la dernière version de BLAS

  • Ouvrez un terminal et allez dans le répertoire où vous l'avez enregistré.

    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

  • Téléchargez la dernière version de LAPACK

    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


Maintenant que les bibliothèques ont été construites, et sont stockées dans path/to/lib le court exemple de code dans la question peut être compilé.

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X