QE6.7_to_Fedora34

OUOperatingGrant.png

Quantum-Espresso 6.7.0のLinux Fedora34へのインストール(2021/07/12)


  • Quantum-Espresso(QE)は、擬ポテンシャルと平面波を使う第一原理電子状態計算プログラムである。QE6.7.0をCore i9 PC (i9-7980XE, OSFedora34 X86_64) にインストールした際のメモ。18 core並列で計算させたいのでopenmpiを使う。

Fedora34のインストール

 既にFedora33をインストールしているので、アップデートでOSを更新することができるのだが、34へアップデートしたところterminalが起動しなくなった。これはAMD PCでも同じ現象が生じた。terminalが起動しないと仕事にならない。ここのところずっとupdateでOSの更新繰り返してきたが、色々と問題が出てきたので(AMD PCではマウスカーソルがおかしくなるなど)、今回はクリーンインストールすることにして、データをバックアップしてから、USBメモリからFedora34をインストールした。これ自体は特に問題なし。また、これでインストールしたFedora34はterminalの問題は無くなった。updateをしておく。

gcc, openmpi等のインストール

 これはQE6.5_to_Fedora32の時と同じで、特にその通りで問題なし。以前gccが型を厳密にチェックするようになったために生じていた問題はなくなったようだ。
 Quantum Espresso 6.7.0はhttps://github.com/QEF/q-e/releasesからダウンロードできる。私はtar.gz版をダウンロードして、GUIを使って解凍。ホームディレクトリーにコピー。QEのディレクトリに移動して、まず何も指定せずにconfigureしてみる。

> ./configure

make.incをエディタで開いて、ちゃんと設定できているかチェック。まだMKLをインストールしていないので、内部のBLAS, LAPACK等のライブラリーを使う設定である。私の場合、TOPDIRが変になるので(多分コンパイルには問題ない)、TOPDIRのコメントを外している以外には変更なし。これで

> make all

して、実行ファイルは正常に動作した。ただ、これだと計算時間がMKLを使った場合よりも3倍以上かかるので、MKLを使うようにする。

MKL(Intelのmath kernel library)のインストール

 以前MKLは単独で配布していたが、今はoneAPIのBase Toolkitの一部となっている。こちらにはmpi, c++, pythonなども含まれているようだ。また、HPC Toolkitもインストールすると、ifortがインストールされる。以前はMKLはフリーで、ifortは(アカデミック)ライセンスが必要だったが、現在どちらもフリーとなっている。これらは検索して出てくるIntelのサイトの指示に従って簡単にインストールできる。localで行う場合は、落としたファイルを実行するとGUIが使える場合はX-window上でインストール作業ができる。
 ただ、Base Toolkit, HPC Toolkitをインストールしてみたが、私の環境ではifort, Intelのmpif90などを使ってうまくコンパイルできなかった。make all実行時にエラーが出るか、成功したかに見えても実行ファイルが正常に動かなかった。多分どこか設定が悪いのかもしれないが。
 仕方ないので、HPC Toolkit, Base Toolkitを一度アンインストールして、Base ToolkitでMKLだけをカスタムインストールした。これで./configureすると、BLAS, SCALAPACKについてはMKLを使うような設定になっていた。BLASでMKLになっているとLAPACKは自動的にMKLになる(以前勘違いしていてLAPACKを./configureで別途指定していたが、それは不要)。これでmake allして、問題なく実行ファイルができた。先のMKLなしの場合と同じ構造最適化入力ファイルを使って実行させると、MKLを使わない場合の3.3倍ほど速くなっていた。この速度は以前(6.4.1)でMKLを使っていた時とほぼ同じか、ちょっと速いくらい。以前は./configureでFFTW3のライブラリーの場所を直接指定していたが、make.incを見るとDFLAGSのところで、-D_DFTIが指定されていた。ユーザーマニュアルによると、この指定はMKLのFFTWを使うためのものなので、./configureやmake.incのFFT_LIBSで直接指定する必要はないようだ。実際、interfacesのところで自分でコンパイルしたlibfftw3を直接指定しても、しなくても実行速度はほぼ同じだった。
 なお、MKLのライブラリーはデフォルト設定では以下に入っているので、.bashrcでLD_LIBRARY_PATHでこれを指定して、exportしている。なお、LD_LIBRARY_PATHの設定のところで「=」の周りには空白を入れてはダメ。いつもそれを忘れてbashに怒られる。

/opt/intel/oneapi/mkl/latest/lib/intel64

 とりあえずはこれで従来通りの速度で計算できるようにはなったが、ifortでうまくコンパイルできない、できた実行ファイルがおかしい点はまだ未解明のまま。

AMD PCへのインストール

 一応インストールできたので、AMD PC (Ryzen Threadripper 1950X 16 core, 32 GBメモリー)へもインストールした(こちらもupdateでterminalが起動できない状態だった)。i9と同じで問題なくインストールできたが、AMD CPUの場合、いくつかMKL関係で設定すべきことがある。ユーザーガイドによると、configureする前に次の2つを設定しておくとAMD CPUでの実行速度が少し速くなるそうだ。試すと数%速くはなるが、前ほどは(QE6.5でやった時は20%くらい)速くならなかった。MKLがさらにAMD CPUに対応したためだろうか?

> export MKL_DEBUG_CPU_TYPE=5
> export MKL_CBWR=AUTO

 速度的にはi9 18 coreと比べて、約2倍時間がかかる。最新のThreadripper Pro 64 coreで比較してみたいところ…
 なお、ユーザーガイドはDocディレクトリにTeXのファイルがある。私はこのLinux PCにTeXのシステムをインストールしたくないので(計算専用なので)、MacでTeXShopでuser_guide.texを開いて、LuaLaTeXを使ったらpdfへ変換できた。
 AMD PCでmake allしていたら、なぜか古いMKLのinclude pathが使われていたためにエラーが生じて止まる。これはmake.incのIFLAGSのパスの間違っている部分を以下で置き換えることで解決した。なお、latestはエイリアスであり、2021.3.0(現時点)が実体である。このエラーは多分Base toolkitの環境変数等をセットしてなかったためらしい。libは.bashrcで設定していたので、そちらはちゃんと認識されていた。

 -I/opt/intel/oneapi/mkl/latest/include

qe-gipawのインストール

 NMR,ESR関係の計算を行うプログラムで、現在はQE本体とは別のところから配布。https://github.com/dceresoli/qe-gipawで配布している。make allが成功していることが前提。このサイトの記載通りgitを使ってやってもいいし、https://github.com/dceresoli/qe-gipaw/releasesの方からファイルを落としてもよい。私はqe-gipaw-6.7MaX.tar.gzをダウンロードして、qe-6.7.0へコピー、解凍。単に

> make gipaw

とするだけでgipawがコンパイルできた。

VESTAのインストール

 QEと直接関係ないが、QEの入力ファイルの構造部分作成のためと最適化された構造等をみるためにVESTAを使っているので、VESTAもインストールする。VESTA-gtk3.tar.bz2をダウンロードした。解凍して実行すると、やはり前と同じくlibGLU.so.1がないとエラーが出る。これは前にも書いた通り、http://rpmfind.net/linux/rpm2html/でlibGLUを探して、Fedora34, x86_64用を見つけて、それをインストールすれば解決した。別の古いPC(これもFedora34)の場合は同じようにしてもダメで、その場合はvesta-3.5.7-1.x86_64.rpmを使うとうまくいった。


Last-modified: 2021-07-12 (月) 08:34:52