【試験研究】第一原理計算セットアップ(3):サポートプログラムのインストール (Intel Compilers, wannier90, HDF5, libxc, etc.), (3) installing support programs and libraries for VASP 6.4.2

概要

 vaspをコンパイルするために必要なソフトウェアのインストールを行う。

  • Intel Compilers: intel oneAPI
  • HDF5
  • wannier90
  • libxc
  • libbeef

コンパイラインストール

Intel oneAPI

IntelコンパイラIntel oneAPIというものに統合されており、無料でダウンロード、インストール、運用できるようになっていた。 これまでIntelコンパイラは、有料だったり、学生だけ無料だったり、お試し期間中無料だったりいろいろあったが、完全無料になったようである。 有料のものもあって、「商用優先サポート」が受けられるようです。 ダウンロード先は、Vaspwikiの上記のInstalling_VASP.6.X.Xにあります。 検索しても容易にでてくる。 また、Ubuntuの場合はaptでも入れることができます。aptで入れてもインストーラーは起動するようなので、ダウンロードしても同じのようです。

www.intel.com

Intel GPU Driversのインストール

oneAPI toolkitのインストールのときにWarningが出るので、先に Intel GPU Driversを入れておく。IntelのArcというGPUのドライバーであるが、 将来必要になるかもしれないのと、Warningは気持ち悪いので入れておく。 Instllation guideはこちら。 このページ、Google Chromeだと表示がおかしくなるのだが、Microsoft Edgeなら正常に表示される。 でも、クリックすると崩れてくる。困ったもんだ。 ここのUbuntu (20.04以上) のstableバージョンをインストールする。 方法は、Intel GPU Driver Installation guideの該当セクションに書かれているとおり。

sudo apt install -y gpg-agent wget
wget -qO - https://repositories.intel.com/graphics/intel-graphics.key | sudo gpg --dearmor --output /usr/share/keyrings/intel-graphics.gpg
echo 'deb [arch=amd64 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/graphics/ubuntu focal main' |  sudo tee -a /etc/apt/sources.list.d/intel.list

のあと、

sudo apt update
sudo apt dist-upgrade
sudo apt install intel-opencl-icd intel-level-zero-gpu level-zero intel-media-va-driver-non-free libmfx1 libmfxgen1 libvpl2
sudo apt install libigc-dev intel-igc-cm libigdfcl-dev libigfxcmrt-dev level-zero-dev

とする。4行目(最後の行)は開発者パッケージだが、念のため入れておく。

Intel oneAPI インストール

下記の2つのファイルをダウンロードし、インストールする。MPI, MKLはHPCKitに入っている。

sudo sh l_BaseKit_p_2023.2.0.49397_offline.sh
sudo sh l_HPCKit_p_2023.2.0.49440_offline.sh

キャラクタ端末 (Putty, Teraterm使用時) で操作する場合には、[tab]で項目移動、[space] でチェックON/OFF、[Enter]で確定という操作となる。

BaseKit

下記のパッケージがインストールされる。

 WHAT'S INCLUDED:
    - Intel® DPC++ Compatibility Tool (2023.2.0)                               X
    - Intel® Distribution for GDB* (2023.2.0)                                  |
    - Intel® oneAPI DPC++ Library (2022.2.0)                                   |
    - Intel® oneAPI Threading Building Blocks (2021.10.0)                      |
    - Intel® oneAPI Collective Communications Library (2021.10.0)              |
    - Intel® oneAPI DPC++/C++ Compiler (2023.2.0)                              |

  INSTALLATION LOCATION: /opt/intel/oneapi
  SPACE REQUIRED TO INSTALL: 25.6 GB      SPACE REQUIRED TO DOWNLOAD: 0 Bytes
  CAN INTEGRATE WITH: Eclipse*.
  Intel® Software Installer:  4.3.2.892
  • Eclipseはサポートなしを選んだ ([X] Skip Eclipse* IDE Configuration とした。Eclipseをインストールしていないから。)。
  • Intelに情報は送信しないという選択肢を選んだ ( [x] I do NOT consent to the collection of my information とした。これはどちらでもいい。)。

HPCkit

下記のパッケージがインストールされる。

 WHAT'S INCLUDED:
    - Intel® Inspector (2023.2.0)
    - Intel® Trace Analyzer and Collector (2021.10.0)
    - Intel® MPI Library (2021.10.0)
    - Intel® oneAPI DPC++/C++ Compiler & Intel® C++ Compiler Classic (2023.2.0)
    - Intel® Fortran Compiler & Intel® Fortran Compiler Classic (2023.2.0)
  INSTALLATION LOCATION: /opt/intel/oneapi
  SPACE REQUIRED TO INSTALL: 1.4 GB      SPACE REQUIRED TO DOWNLOAD: 0 Bytes
  CAN INTEGRATE WITH: Eclipse*.
  Intel® Software Installer:  4.3.2.892

上記のリストの中にMKL (Intel Math Kernel Library) がない!と思っていたら、どれかに入っていたみたいです。 /opt/intel/oneapi/mklがあるし、環境変数MKLROOTも設定されている。

環境設定

.bashrcの最後の行に、"source /opt/intel/oneapi/setvars.sh" を追加して環境設定する。1行目のulimit -s unlimitedは、スタックサイズを無制限にする設定。これをやっておかないと、スーパーセルの計算でsegmentation faultが出る。2行目がIntel Compiler関係の設定をするシェルスクリプト。これまでのIntel Compilerと同様のノリである。

# VASP
ulimit -s unlimited
source /opt/intel/oneapi/setvars.sh

oneAPIのアンインストール (おまけ)

下記を実行すると、Intel oneAPIがアンインストールできる。

sudo rm -rf /opt/intel/*
sudo rm -rf /var/intel/*

サポートプログラムのインストール

HDF5

HDFはHierarchical Data Formatの略称である。

  • HDF5のHPに移動して、ユーザー登録(無料)する。
  • HDF5は、ubuntuならaptで入るが、Fortranでuse hdf5するときにエラーになる。同じコンパイラで生成したかどうかが問題になるようだ。
  • ソースファイルをダウンロードする。最初に、zlib, szipをインストールする。
  • 以下、ダウンロード後の手順。インストールディレクトリは/usr/local/の下。HDF5はvaspオンリーのものではなさそうなので、/usr/local/vaspの下には置かなかった。
wget http://www.zlib.net/zlib-1.3.tar.gz
tar zxvf zlib-1.3.tar.gz
cd  cd zlib-1.3
./configure --prefix=/usr/local
make
sudo make install
cd ..
wget  wget https://support.hdfgroup.org/ftp/lib-external/szip/2.1.1/src/szip-2.1.1.tar.gz
tar zxvf szip-2.1.1.tar.gz
cd szip-2.1.1/
./configure --prefix=/usr/local
make
sudo make install
cd ..
tar zxvf hdf5-1.14.2.tar.gz
cd hdf5-1.14.2
FC=ifort ./configure --prefix=/usr/local/hdf5-1.14.2  --enable-fortran --enable-cxx --with-szlib=/usr/local
make
make check
sudo bash
source /opt/intel/oneapi/setvars.sh
make install
make check-install
exit
  • 最後に、LD_LIBRARY_PATHの設定をする。
export LD_LIBRARY_PATH=/usr/local/hdf5-1.14.2/lib:/usr/local/lib:$LD_LIBRARY_PATH

wannier90

  • これはvasp.5.4のときから使っていたので入れておきます。
  • wanner90のサイトから最新版をダウンロードする。
  • デフォルトのままだとmpi版が生成される。これを使うと、vaspのtest_allのCo_2E4W_Tというテストのwannier90のところでフリーズする。非パラレル版を生成する。
  • 以下、非パラレル版のインストール手順。
tar zxvf wannier90-3.1.0.tar.gz
cd wannier90-3.1.0
cp config/make.inc.ifort make.inc

としておいて、make.incを修正。下記はmake.incの全体。

#=====================================================
# For Linux with intel version 11/12 on 64bit machines
#=====================================================
F90 = ifort
#COMMS=mpi
#MPIF90=mpiifort
MPIF90=ifort
FCOPTS=-O2
LDOPTS=-O2

#========================================================
# Intel mkl libraries. Set LIBPATH if not in default path
#========================================================

LIBDIR =  /opt/intel/oneapi/mkl/latest/lib/intel64
LIBS   =  -L$(LIBDIR) -lmkl_core -lmkl_intel_lp64 -lmkl_sequential -lpthread

#=======================
# ATLAS Blas and LAPACK
#=======================
#LIBDIR = /usr/local/lib
#LIBS = -L$(LIBDIR)  -llapack -lf77blas -lcblas -latlas

そしてコンパイルして出来上がりです。再度やる時は、make cleanすること。

make
make lib
mkdir /usr/local/vasp/tools
mkdir /usr/local/vasp/tools/lib
cp libwannier.a /usr/local/vasp/tools/lib
cp wannier90.x /usr/local/vasp/tools
cp postw90.x /usr/local/vasp/tools

libbeef

  • とりあえず入れておくだけ。
  • githubにあるlibbeefのサイトから最新版をダウンロードする。[CODE]>{Download ZIP]から。2023年10月現在、6年ぐらいメンテされてない感じ。
  • 以下手順。デフォルトでは、/usr/local/libにインストールされる。ここでは、/usr/local/vasp/toolsにインストールする。toolsディレクトリはなければmkdirする。
unzip libbeef-master.zip
cd libbeef-master
./configure --prefix=/usr/local/vasp/tools
make
make install

libxc

  • とりあえずインストールしておく。交換相互作用の計算をしてくれて、並列性が高くなると高速化するらしい。しかし、HPCという会社が紹介している検証結果によると、それによるとそれほどありがたいものではなさそう。
  • 最新版をここからダウンロード。wgetで取ると、ファイル名がおかしくなる。phpスクリプトが悪い。Windowsでダウンロードすると、「安全でないダウンロードがブロックされました」となるので、手動で[保存]とする。結局、Windowsでダウンロードして、FTPで送った。
  • vasp本体をIntel Fortranコンパイルするならば、icc, ifortを指定してconfigureしないとコンパイル時にエラーが出る。icc, ifortはicx, ifxに名前が変わる予定だが、libxc-6.2.2のconfigureはicx, ifxを知らないので、これらを指定してもはじかれる。なお、iccを使うと、いちいちiccは使えなくなりますというreminderが出るのでうっとおしい。抑制するオプションをつければいいが面倒なのでパス。
  • VASPに組み込むには--disable-fhcを入れないとだめなのだが、入れると下記にあるlibxcのmake checkでFAILが1つでます。
  • 以下手順。/usr/local/vasp/toolsはなければmkdirする。
tar zxvf libxc-6.2.2.tar.gz
cd libxc-6.2.2
CC=icc FC=ifort ./configure --prefix=/usr/local/vasp/tools --disable-fhc
make
make check
make install