Quantum-Espresso 6.5のLinux Fedora32へのインストール(2020/07/27) †
- Quantum-Espresso(QE)は、擬ポテンシャル(PAWも使える)と平面波を使う第一原理電子状態計算プログラムである。QE6.5をCore i5 PC (OSはFedora32 X86_64) にインストールした際のメモ。
- インストールしたPCはi5 8500 (6 core)、メモリは8 GB、M.2のSSD 256 GBの構成で、パソコン工房で昨年買った。本当はAR sandbox用に買ったが、グラフィックスボードとの相性が悪いので、計算用に使うようにした。計算目的でなかったので、メモリ、SSDがちょっと小さい。コンパイラとしてはgcc, gfortranで、ライブラリーはIntelのMKLを使う。
- (20200814)その後、i9, Theadripper PCにもインストールしたが、特に問題なかった。ただ、これらはクリーンインストールではなかったので、クリーンインストールでは起きるであろう問題に対応してなかったので、その分を追加した。
Fedora32へのアップデート †
- 既にFedora31をインストールしているので、ソフトウエアのアップデートでOSを更新することができる。Fedora32自体へのアップデートも適用しておく。この辺りはGUI(ActivitiesのSoftware)で全てできる。以下>はterminalのプロンプト。
gccのインストール †
- まずはgccのインストールをする。https://gcc.gnu.org/からダウンロード。10.2が最新だった。解凍する。色々と足りないのですぐにconfigureはできないので、まず必要なものをインストールする。これには以下のコマンドを実行すればよい。
> ./contrib/download_prerequisites
これで不足分のソフトをインストールしてくれるが、クリーンインストールの場合は、cppがない事によるエラーがmakeで出るので、make前に以下を実施する。> sudo dnf install gcc-c++
クリーンインストールの場合、そもそもmakeがないはずなので、makeも以下でインストール。> sudo dnf install make > ./configure --disable-multilib
とする。OSが64bit用なので、--disable-multilibをつけている。ないとエラーが生じる。これでmake, make installできる。> make > sudo make install
これでgccをインストールできた。なお、makeにはかなり時間がかかるので、1時間以上放っておく。コンパイル後は、.bashrc or .bash_profileに、PATHに/usr/local/binと/usr/bin、LD_LIBRARY_PATHに/usr/local/lib64を追加する。PATHを設定した後は、一度ターミナルをログアウトする。設定が変わらない場合は、再起動してみる。
openmpiのインストール †
- www.open-mpi.orgからソースをダウンロード(今回最新版はver.4.0.4だった)。なおconfigure時にprefixで/usr/local/openmpiと指定した。これはインストール先の指定。
> ./configure ―prefix=/usr/local/openmpi > make > sudo make install
コンパイル後、PATHに/usr/local/openmpi/binを、LD_LIBRARY_PATHに/usr/local/openmpi/libを追記した。これらがシステムにちゃんと認識されていないと、並列用の実行ファイルにならないので、> echo $PATH > echo $LD_LIBRARY_PATH
で設定されている内容を確認しておくこと。この状態でもQEをコンパイルすることができるが、このままでは遅いので、その前にMKLをインストールする。
MKL(Intelのmath kernel library)のインストール †
- BLAS, LAPACK, FFTWのライブラリーはQEにも用意されているが、MKLを使った方がIntel CPUでは速くなるので、MKLをインストールする。現在、MKLは非商用だとフリーで使える。私の理解では、Linux用のifortなどはコンパイラについては、個人使用ならばフリーで使えるが、私のように大学での研究目的の場合はアカデミックライセンス(有償)を取る必要がある。一方、MKLは完全にフリーである。Intelのサイトに行って、Linux版のMKLをダウンロードする。ダウンロードしたMKLを解凍する。MKLのインストールは、install.shで行う。MKLのディレクトリに入って、
> ./install.sh
- aptでインストールもできるようで、Qittaに記事があった。また、ちょっと調べたら、どうも今後MKLはoneAPIの中のoneMKLとなるようだ。しかしまだベータ版だった。
- 以前は/opt/intelにデフォルトでインストールされていたはずだが、今回はhome/masami/intel以下にインストールされていた(ここでmasamiはユーザー名で変えて下さい。以下同様)。
- fftwについてはなぜか別途コンパイルする必要があるようなので、次にMKLのfftw3をコンパイル。/home/masami/intel/mkl/interfaces/fftw3xf/にソースがあるので、ここでmakeする。64bit版の場合は、
> make libintel64 compiler=gnu
でいいようだ。できたlibfftw3xf_gnu.aを/home/masami/intel/mkl/lib/intel64/に移す。これでMKLを使ったQEのインストールができるようになった。LD_LIBRARY_PATHに/home/masami/intel/mkl/lib/intel64を追加した。
QEのインストールの前にすること †
- gcc10.2では型を厳密に調べるようになったせいで、このままQEをコンパイルすると、以前は出なかった型のエラーで止ってしまった。これを回避するには以下のフラグを設定する必要がある。これはStackoverflowやgithubのFortranフォーラムで既に指摘されている。なので、以下の2つをインストール前に実行しておく。たぶんQE側でも今後対応されると思う。
> export FCFLAGS="-w -fallow-argument-mismatch -O2" > export FFLAGS="-w -fallow-argument-mismatch -O2"
QE-6.5のインストール †
- ソースはhttps://github.com/QEF/q-e/releasesからダウンロードできる。最新は6.5。この版ではrVV10, vdW-DFで予めテーブルを作っておく必要がなくなったそうだ。
- 私はtar.gz版をホームディレクトリー(/home/masami)にダウンロードした。tar xzfでアーカイブを展開する。QEのディレクトリに移動して、まず何も指定せずにconfigureしてみる。
> ./configure
出力の最後の方を見て、ライブラリーなどにMKLが正しく指定されているかをチェック。今回もBLASはMKLが自動で選ばれていたが、LAPACKとFFTには指定がなかった。このままmake allすると、LAPACK, FFTについてはデフォルトの遅いライブラリーがリンクされてしまう。仕方ないので直接> ./configure LAPACK_LIBS="/home/masami/intel/mkl/lib/intel64/libmkl_lapack95_lp64.a" 続き FFT_LIBS="/home/masami/intel/mkl/lib/intel64/libfftw3xf_gnu.a"
とライブラリーを指定してやる。これはmake.incの対応するところに書き込んでもよい。そしてmake allした。 - 私の場合はここで、includeのパスがおかしいwarningが出ていて、その後エラーで止まった。そのため、make.incの中を見て、IFLAGSで、mklのパスが/opt/以下になっているのを実際に合わせて変更した(私の場合は/home/masami/intel/mkl/include)。またqe6.5の存在するパスでも/が2つ重なることでwarningが出ているのが見られたので、TOPDIRのところのコメントアウトを外して、directoryを正しくこちらで設定。それで再度make allして、先ほどのwarningが消え(まだ出るものも残るがシリアスではない)、エラー出ることなくコンパイルができた。
- なお、この辺りで色々とトラブった場合には、一度make cleanをして、configureから再開する(make.incも再編集)。また私が混乱したのは、warningでFoXというdirectoryが出てくるのだが、調べるとそのようなdirectoryがあったり、なかったりした。これはFoXというdirectoryは解凍直後にはなくて、インストール途中で作成されるからだった。
- 私の場合は、型の問題のエラーもあったので、途中色々と調べたり、試行錯誤が必要だったが、最初から2つのフラグを設定しておけばスムーズにインストールできるはず。
- 最後に最近使ったpentadiamondの入力ファイルを使って、6 coreを使ったvc-relax計算をしてみた。15分くらいで最適化された(これは空間群を使っている。使ってないともっと時間がかかる)。topまたはpsで見ると確かに6 core全部使われていることが確認できる。計算の進捗状況を見るには、tail -f hoge.outで出力ファイルを逐次表示させる。
- 確かに入力ファイルにrVV10を指定するだけで計算ができた。以前のバージョンでは事前にTableを作る必要があった。
QE-GIPAW 6.5のインストール(20200729追加) †
- ソースはhttps://github.com/dceresoli/qe-gipawからダウンロードできる。最新は6.5で、QE本体と同じ版を使う。QEのディレクトリにソースをコピーして、解凍する。qe-gipaw-6.5内のディレクトリに移動する。READMEにconfigureの仕方が書いてある。それによると、QE自体をコンパイルした時の情報(ライブラリーとか)を必要とするので、QEのディレクトリ内にqe-gipaw-6.5をコピーした場合は、以下のように..(1つ上のディレクトリ)を指定すればよいだけ。
> ./configure --with-qe-source=..
他の場所にある場合は、最後の部分を変更する。これでエラーが出なければ、qe-gipaw-6.5のディレクトリでmakeとタイプするとgipaw.xができる。これのエイリアスまたは本体を1つ上のqe-6.5本体のbinに移動しておく。なお本体(binary)はsrcディレクトリ内にある。 - なおgipaw計算ではPAWポテンシャルを使う必要があります(実際にはpw.xの時にPAWポテンシャルを指定する)。
Last-modified: 2020-12-07 (月) 15:56:38