物性研(System B Ohtaka)でのQuantum Espresso-Perturboコンパイル
これも内輪用です!(重要!)
責任は取れないよ!
下準備
VASPのコンパイルの時と下準備は一緒です。
HDF5は既にインストール済みでしたら適宜スキップしてください。
まずはmodule loadから
module purge module load oneapi_compiler/2023.0.0 oneapi_mkl/2023.0.0 oneapi_mpi/2023.0.0
次にHDF5のインストール
HDF5® Source Code - The HDF Group
ここからソースコードをダウンロードしてください。
ダウンロードできたらHDF5のディレクトリ内で以下を実行します。
prefix=は各々のディレクトリを指定してください。
./configure --prefix=/home/test/hdf5-1.8.18/ --enable-fortran CC=mpicc FC=mpiifort CXX=mpicxx make make install
Quantum Espressoのコンパイル
Quantum Espressoのバージョンは7.2を使用しています。
Quantum Espresso(QE)のディレクトリ直下でconfigureを実行します。
.configure
実行したら"make.inc"ができると思うので一応中身を確認しておきましょう。
module loadは絶対に忘れずにね!
もしHDF5をQEでも使うのなら
# HDF5 HDF_LIBS = /your/hdf5/lib
って感じで追記しておきましょう。
そして各自使うやつをmakeしましょう。
make pw ph pp w90
makeする時はジョブスクリプト書くかインタラクティブジョブ状態にしてからしようね!
約束だよ!(超重要!)
QEのコンパイルはこれで完了です。
./binの中に"~.x"といった感じの実行ファイルができているはずです。
Wannier90のコンパイル
ここからダウンロードできます。
PerturboはWannier 90-3.0.0以降しか対応していないのでそこだけ注意。
"config"の中にある"make.inc.~"をコピーします。(ここではmake.inc.ifort)
cp ./config/make.inc.ifort ./make.inc
そしてmakeすれば難なくコンパイルできるはずです。
Perturbo
Perturboのバージョンは2.1.0を使用しています。
バージョン2.1.0の場合、ディレクトリ直下に"make.sys"があるのでそれを編集していきます。
ちなみに変更する箇所が多くなりすぎるので、PerturboはQEのディレクトリ内に置くことを強く勧めます。
編集といっても通常はHDFのPATHを書いてあげるだけでOKです。
#path to HDF5 library IFLAGS += -I/home/k~/k~/hdf5~/include HDF5_LIB = -L/home/k~/k~/hdf5/lib -lhdf5 -lhdf5_fortran
書いてあげたらmakeして、"bin"ディレクトリ内に"perturbo.x"と"qe2pert.x"があれば大丈夫です。
おまけ
濱田先生のQiitaに書いてある通り
ジョブスクリプトに
export FI_PROVIDER=psm3
を追記してあげた方が実行速度が速くなっている気がします。
ohtaka上でのIntelコンパイラ(+IntelMPI)を使ったコンパイルの問題 #IntelCompiler - Qiita
参考までに自分のジョブスクリプトはこんな感じです。
~~~省略~~~ ulimit -s unlimited module purge module load oneapi_compiler/2023.0.0 oneapi_mkl/2023.0.0 oneapi_mpi/2023.0.0 export MKL_DEBUG_CPU_TYPE=5 export UCX_TLS='self,sm,ud' export KMP_STACKSIZE=512m # standard version srun ~/qe-7.2/bin/pw.x -i pwscf.in | tee result.out
MPI並列とOpenMP並列のいい塩梅を知っている方いれば、教えてくださると助かります。
タスクあたりのコア数(OpenMP並列)をCPUの構成から見て64の約数にした方がなんとなく良いと思います。