OUOperatingGrant.png

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ポテンシャルを指定する)。

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-07-27 (月) 17:51:32 (119d)