uname -m
> aarch64
cat /etc/almalinux-release
lscpu
GNU Fortran + OpenMPI + OpenBLAS + (ScaLAPACK + ) FFTW
VASP: GNU/FOSS構成の makefile.include.gnu / gnu_omp
sudo dnf groupinstall "Development Tools"
sudo dnf install gcc gcc-c++ gcc-gfortran make
sudo dnf install -y vim-minimal
sudo dnf install -y vim-enhanced
sudo dnf install -y nano
sudo dnf install rsync
BLAS系インストール:
sudo dnf config-manager --set-enabled crb
sudo dnf clean all
sudo dnf install epel-release
sudo dnf makecache
dnf repolist
> crb があることを確認
dnf search blas
dnf search lapack
dnf search flexiblas
> blas
> blas-devel
> lapack
> lapack-devel
> flexiblas
> flexiblas-devel
> flexiblas-openblas-openmp
sudo dnf install \
blas blas-devel \
lapack lapack-devel \
flexiblas flexiblas-devel \
flexiblas-openblas-openmp \
fftw fftw-devel
ScaLAPACKはとりあえずあきらめる
HDF5:
sudo dnf install hdf5-openmpi hdf5-openmpi-devel
sudo dnf install openmpi openmpi-devel
which mpif90
mpif90 --version
> GNU Fortran ...
mpif90 -show
find /usr -name mpirun -o -name mpif90 -o -name mpifort 2>/dev/null
> /usr/lib64/openmpi/bin/mpirun
> /usr/lib64/openmpi/bin/mpif90
> /usr/lib64/openmpi/bin/mpifort
.bashrc:
export PATH=/usr/lib64/openmpi/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib64/openmpi/lib:$LD_LIBRARY_PATH
sudo dnf install -y \
python3.12 \
python3.12-pip \
python3.12-devel \
python3.12-tkinter \
tk \
tk-devel
tkinterの確認:
python -m tkinter
cd /home/share
python3.12 -m venv 312
source ./312/bin/activate
python -m pip install --upgrade pip setuptools wheel
python -m pip install \
numpy \
scipy \
matplotlib \
pandas \
openpyxl
tkProgのインストール:
cd /home/share/tkProg
pip install requests bs4
./update_Linux.sh
python chklib.py
python setup.py
vasp6.6.1_arm_wsl2_almalinux9/makefile.include
ライブラリの確認:
rpm -qa | grep -Ei 'blas|lapack|flexiblas|fftw'
ldconfig -p | grep -Ei 'blas|lapack|fftw'
> libflexiblas.so
> libblas.so
> liblapack.so
> libfftw3.so
tar xf vasp.6.6.1.tar.gz
cd vasp.6.6.1
cp arch/makefile.include.gnu_omp makefile.include
ライブラリの場所を確認:
rpm -ql openblas-devel | grep -E 'libopenblas.*\.so'
rpm -ql fftw-devel | grep -E 'libfftw3.*\.so'
rpm -ql scalapack-openmpi-devel | grep -E 'scalapack.*\.so'
makefile.include:
ScaLAPACKを無効化:
grep -n -E 'scaLAPACK|SCALAPACK|BLAS|LAPACK|FFTW' makefile.include
削除: -DscaLAPACK
削除: SCALAPACK = ...
LLIBS += $(SCALAPACK)
BLAS and LAPACK (OS提供のBLAS/LAPACKを使う):
pkg-config --libs blas
pkg-config --libs lapack
> -lblas
> -llapack
FFTW:
pkg-config --libs fftw3
pkg-config --cflags fftw3
makfeil.include:
BLASPACK = -llapack -lblas
# FFTW
LLIBS += -lfftw3 -lfftw3_omp
INCS += -I/usr/include
rpm -ql fftw-devel | grep fftw3.f
> /usr/include/fftw3.f
makfeil.include:
LLIBS += -lfftw3
INCS += -I/usr/include
最初: OFLAG = -O2
最適化版: OFLAG = -O3
make veryclean
make DEPS=1 -j4 std
実行:
export OMP_NUM_THREADS=1
export OPENBLAS_NUM_THREADS=1
mpirun -np 4 ./bin/vasp_std
ライブラリ場所確認:
rpm -ql hdf5-openmpi-devel
makfile.include:
CPP_OPTIONS += -DVASP_HDF5
HDF5_ROOT = ...
LLIBS += ...
INCS += ...