:D 获取中...

1 install lapack and blas

cur -o blas.tgz http://www.netlib.org/blas/blas.tgz
tar -xvf blas.tgz 
cd BLAS 
 modify make.inc
OPTS = -O3 -m64 -fno-second-underscore -fPIC
BLASLIB = librefblas.a
 end make.inc
make 
mkdir ../lib.gnu && cp librefblas.a ../lib.gnu/
 download latest lapack from http://www.netlib.org/lapack/
tar -xvf lapack-3.6.1.tgz
cd lapack-3.6.1
cp INSTALL/make.inc.gfortran make.inc
 modify make.inc for lapack
OPTS = -O2 -frecursive -m64 -fPIC
NOOPT = -O0 -frecursive -m64 -fPIC
CFLAGS = -O3 -fPIC
BLASLIB = /home/ywmu/backup/.soft/lapack/lib.gnu/librefblas.a
 end for make.inc
make
make lapackelib
mv lib*.a ../lib.gnu
  
 instal ATLAS
 download ATLAS from https://sourceforge.net/projects/math-atlas/files/
sudo mkdir /opt/Atlas
sudo chown -R ywmu:ywmu /opt/Atlas/ 
tar  -xvf atlas3.10.3.tar.bz2
../configure -b 32 -Fa alg -fPIC -shared -prefix=/opt/Atlas/  --with-netlib-lapack-tarfile=/home/ywmu/backup/.soft/lapack/lapack-3.6.1.tgz
make && make install

2 Or install 3.0.18

2.1 Intel version

  • maybe modification -mavx2 to -march=core-avx2
mkdir OpenBlas
git clone https://github.com/xianyi/OpenBLAS.git
make FC=ifort CC=icc  CXX=icpc
mv libopenblas_zenp-r0.3.18.a libopenblas_omp.a
mv libopenblas_zenp-r0.3.18.so libopenblas_omp.so

make clean 
make  USE_OPENMP=1 FC=ifort CC=icc  CXX=icpc
mv libopenblas_zenp-r0.3.18.a libopenblas.a
mv libopenblas_zenp-r0.3.18.so libopenblas.so

2.2 Gnu version

mkdir OpenBlas.gnu
git clone https://github.com/xianyi/OpenBLAS.git
make FC=gfortran CC=gcc CXX=g++
mv libopenblas_zenp-r0.3.18.a libopenblas_omp.a
mv libopenblas_zenp-r0.3.18.so libopenblas_omp.so
make clean 
make USE_OPENMP=1 FC=gfortran CC=gcc CXX=g++
mv libopenblas_zenp-r0.3.18.a libopenblas.a
mv libopenblas_zenp-r0.3.18.so libopenblas.so

3 ScaLapack

3.1 ScaLapack based on openblas

### vi SLmake.inc 
BLASLIB       =/home/ywmu/backup/Src/comlib/gcc7/libopenblas_omp.a
# Or for intel: BLASLIB       =/home/ywmu/backup/Src/comlib/oneapi/libopenblas_omp.a
LAPACKLIB     =
#----------------

make clean 
make FC=gfortran CC=gcc CXX=g++
Or make FC=ifort CC=icc  CXX=icpc
  • libopenblas.a Failed

3.2 ScaLapack based on AOML

### vi SLmake.inc 
BLASLIB       =/opt/local/amd/2.2/amd-blis/lib/libblis.a
LAPACKLIB     = /opt/local/amd/2.2/amd-libflame/lib/libflame.a

make clean 
make lib