Quantum ESPRESSOをWSLでビルドする

QE

第一原理計算のオープンソースソフトウェアである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の番号をそのまま入力します。

クリックで拡大

ダウンロードのページではSOFTWAREQuantum 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 allmake 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
※QE7.2

無事に動きました。Ctrl+Cで終了しましょう。
ちなみに mpiexec -n 4 pw.x を動かしてみると。

※QE7.2

こちらも無事に動きました。running on 4 processors の表示もあります。

スポンサーリンク

まとめ

WSLにQuantum ESPRESSOを入れる方法を解説しました。
Windows上で最新のQuantum ESPRESSOを動かそうと思うと実質WSLでコンパイルするしかありません。
この記事が誰かの参考になれば幸いです。

コメント

タイトルとURLをコピーしました