이라는 이름의 부분 피벗 기능을 사용하고 있습니다 gesv
. C++에서 이러한 일이 발생하도록 라이브러리를 얻으려면 다음에서 한 줄 명령을 사용했습니다.BLAS 및 LAPACK 패키지 설치.
sudo apt-get install libblas-dev liblapack-dev
그런 다음 컴파일 지침에 다음을 추가하여 라이브러리를 연결할 수 있었습니다.
g++ main.cpp -llapack -lblas
내 노트북(Linux 2020)에서 속도가 엄청나게 향상되었지만 클러스터에서 실행을 시작했을 때 동일한(대형) 케이스를 실행할 때 방법이 매우 느립니다. 두 라이브러리가 모두 클러스터에 설치되어 있지 않은 것 같습니다. 코드가 실행되므로 속도 증가를 제공하는 코드가 내가 사용 중인 클러스터에 없는 것 같습니다.
명령 을 수행하는 대신 "손으로" lapack
및 라이브러리를 빌드한 다음 연결할 수 있습니까 ?blas
apt-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