클러스터에서 사용하기 위해 BLAS 및 LAPACK 라이브러리를 직접 구축하고 연결하는 방법은 무엇입니까?

클러스터에서 사용하기 위해 BLAS 및 LAPACK 라이브러리를 직접 구축하고 연결하는 방법은 무엇입니까?

이라는 이름의 부분 피벗 기능을 사용하고 있습니다 gesv. C++에서 이러한 일이 발생하도록 라이브러리를 얻으려면 다음에서 한 줄 명령을 사용했습니다.BLAS 및 LAPACK 패키지 설치.

sudo apt-get install libblas-dev liblapack-dev

그런 다음 컴파일 지침에 다음을 추가하여 라이브러리를 연결할 수 있었습니다.

g++ main.cpp -llapack -lblas

내 노트북(Linux 2020)에서 속도가 엄청나게 향상되었지만 클러스터에서 실행을 시작했을 때 동일한(대형) 케이스를 실행할 때 방법이 매우 느립니다. 두 라이브러리가 모두 클러스터에 설치되어 있지 않은 것 같습니다. 코드가 실행되므로 속도 증가를 제공하는 코드가 내가 사용 중인 클러스터에 없는 것 같습니다.

명령 을 수행하는 대신 "손으로" lapack및 라이브러리를 빌드한 다음 연결할 수 있습니까 ?blasapt-get

시간 내 주셔서 감사합니다.

답변1

BLAS

  • 최신 버전을 다운로드하세요. BLAS

  • 터미널을 열고 저장된 디렉토리로 이동하십시오.

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

라팩

  • 최신 버전을 다운로드하세요.라팩
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

이제 라이브러리가 빌드되고 에 저장되었으므로 path/to/lib질문의 짧은 예제 코드를 컴파일할 수 있습니다.

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

관련 정보