第一原理計算のオープンソースソフトウェアであるQuantum ESPRESSOを、WSL上でソースからビルドしたいと思います。
今回はWSL上でやっていますが、Ubuntu等でも共通だと思います。
また、Windows用のQE実行ファイルは現在配布されていないので、Windowsで最新のQEを使いたい場合は実質この方法しかないと思います。
- 環境
- Windows11 Home 22H2
- WSL2 (Ubuntu 22.04.2 LTS)
- コンパイラはgccかIntel OneAPI
ダウンロード
Quantum ESPRESSOのソースを公式サイトからダウンロードするにはユーザ登録とログインが必要ですが、ソースコードはGitLabからもダウンロードができます。
公式ページからダウンロードする場合
ユーザ登録してログインしましょう。
3番目の入力ボックスにはsecurity codeの番号をそのまま入力します。
ダウンロードのページではSOFTWAREのQuantum ESPRESSO V.〇〇をダウンロードします。
ダウンロードサイズは80MBくらいでした。
GitLabからダウンロードする場合
こちらから取ってこれます。
上記ページでインストーラのURLをコピーしてWSL上でwgetを使うと速いです。
wget https://gitlab.com/QEF/q-e/-/archive/qe-7.4/q-e-qe-7.4.tar.gz
インストール
WSLの準備
WSL2の環境がまだない場合はこちらの手順で準備します。
WSL2が動かせるようになったらコンパイラ等を準備します。
すでにgccやgfortranやMPIがある方はスキップして構いません。
sudo apt update
sudo apt install build-essential mpich
これでgccやgfortranやMPICHなどが入ります。
なお今ではIntelコンパイラはaptでインストールできるので、ディスク容量に余裕があってコンパイラにこだわりたい方はそちらを使うのもありだと思います。
インストーラの準備
Windows側のファイルはWSL側からは/mnt/c/でアクセスできます。ホームディレクトリにコピーし、tarで展開します。
WSL領域でwgetした場合はそのままtarコマンドで展開します。
$ pwd
/home/wsl
$ cp /mnt/c/Users/Windowsのユーザ名/Downloads/q-e-qe-7.4.tar.gz .
$ tar -xvf q-e-qe-7.4.tar.gz
ビルド
展開したものをビルドしていきます。--prefix
でインストール先を指定します。
なお make all
は make all -jN
にするとN並列で進んで速くなるらしいですが、過去に上手くいかなかったことがあったので無指定で行きます。
$ cd q-e-qe-7.4.tar.gz
$ ./configure FC=gfortran CC=gcc --enable-parallel --prefix=$HOME/.local/qe
$ make all
$ make install
make all
で全てのプログラムのコンパイルを行い、make install
で実行ファイルが --prefix
の場所にコピーされます。
また、make all
は全てコンパイルするため時間がかかりますが、pw.x しか使わないのであれば make pw
のほうがいいです。
参考 Intel oneAPIを使う場合
コンパイラの環境変数はmoduleコマンドで読み込んでいます。またこれはあくまで一例です。
. /etc/profile.d/modules.sh
module load mpi/latest
module load mkl/latest
module load compiler/latest
./configure FC=ifx CC=icx --enable-parallel --with-scalapack=intel \
BLAS_LIBS="-lmkl_intel_lp64 -lmkl_sequential -lmkl_core" \
LAPACK_LIBS="-lmkl_intel_lp64 -lmkl_sequential -lmkl_core" \
SCALAPACK_LIBS="-lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64" \
--prefix=$HOME/.local/qe
make all
make install
またこの場合は実行時もmodule loadが必要になります。
. /etc/profile.d/modules.sh
module load mpi/latest
module load mkl/latest
mpiexec -n 4 pw.x -in sample.pwi
moduleコマンドの使い方をこちらで解説しています。
参考 GPU用にコンパイルをする場合
参考 make allの後の状態
make allが終わったときの画面。※QE7.2
make allが終わった後のbinの中身。
PATHを通して動作確認
make install
をしたことにより、実行ファイルが $HOME/.local/qe/bin
の中に置かれました。
ここにPATHを通します。(make installをしていない場合はqeフォルダ内のbinを指定します)
まず.bashrcを開きます。
$ vi ~/.bashrc
以下のものを追記します。
export PATH=$HOME/.local/qe/bin:$PATH
.bashrcの変更を反映し、pw.xを動かしてみます。
$ source ~/.bashrc
$ pw.x
無事に動きました。Ctrl+Cで終了しましょう。
ちなみに mpiexec -n 4 pw.x
を動かしてみると。
こちらも無事に動きました。running on 4 processors
の表示もあります。
まとめ
WSLにQuantum ESPRESSOを入れる方法を解説しました。
Windows上で最新のQuantum ESPRESSOを動かそうと思うと実質WSLでコンパイルするしかありません。
この記事が誰かの参考になれば幸いです。
コメント