1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GPAWのohtakaへの導入記録 (#3)

Posted at

GPAWを東京大学物性研究所システムB (ohtaka) へ導入する/した際の導入手順です。GPAWはprojector augmented wave (PAW) 法をpythonなどを用いて実装された第一原理プログラムで密度汎関数理論に加えて多体摂動論に基づく計算が可能なプログラムです。波動関数は平面波基底、実空間グリッド、あるいはLCAOを用いて記述することが可能です。GPAWはAtomic simulation environment (ASE)に基づいて実装されています。

この記事では最新版のGPAW (24.1.0) をインストールした手順を記述します。

準備

ASEのインストール

過去の記事を参照して下さい。

以下の作業は仮想環境が$(HOME)/ASE/ase_oneapi_2023.0.0に作成されているとし、以下を実行してから始めます。

source ~/ASE/ase_oneapi_2023.0.0/bin/activate

libxcのインストール

libxcをビルド、インストールしておきます。tddft.orgは現在(2024.04.13)時点で使用されていないようです。最新版 (6.2.2) は以下のようにgitlabから入手することが可能です。
作業ディレクトリで以下を実行します。

wget https://gitlab.com/libxc/libxc/-/archive/6.2.2/libxc-6.2.2.tar.gz

次にlibxc-6.2.2.tar.gzを展開、libxc-6.2.2ディレクトリに移動してconfiguremakeの実行を行います(libxcはホーム(${HOME})のlocal以下にインストールすると仮定)。

./configure CC=icc CFLAGS="-O2 -fPIC" --enable-shared --prefix=${HOME}/local

makeを実行します。

make

問題無くビルドできれば、チェックした後にインストールを実行します

make check

make checkの結果

============================================================================
Testsuite summary for libxc 6.2.2
============================================================================
# TOTAL: 1
# PASS:  1
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================

最後にmake installを実行し、今の場合は${HOME}/local/liblibxcをインストールします。

make install

GPAWのインストール

GPAWのソースを入手します。

wget https://pypi.org/packages/source/g/gpaw/gpaw-24.1.0.tar.gz

GPAWを展開、ディレクトリに移動します。

tar xf gpaw-24.1.0.tar.gz
cd gpaw-24.1.0

次にsiteconfig.pyを編集します。以下のようになりました。

# MPI:
mpi = True
if mpi:
    compiler = 'mpicc'

# openmp
extra_compile_args += ['-fopenmp','-fPIC','-O2','-march=core-avx2']
extra_link_args += ['-fopenmp']
extra_link_args += ['-fPIC', '-O2','-march=core-avx2']

# FFTW3:
fftw = True
if fftw:
    include_dirs += ['/opt/intel/oneapi/mkl/2023.1.0/include/fftw/']

# ScaLAPACK (version 2.0.1+ required):
scalapack = True
if scalapack:
    libraries += ['mkl_scalapack_lp64', 'mkl_blacs_intelmpi_lp64', 'mkl_intel_lp64', 'mkl_intel_thread', 'mkl_core', 'iomp5', 'pthread', 'm']

# - dynamic linking (requires rpath or setting LD_LIBRARY_PATH at runtime):
if 0:
    xc = '/home/k0472/k047203/local/'
    include_dirs += [xc + 'include/']
    library_dirs += [xc + 'lib/']
    # You can use rpath to avoid changing LD_LIBRARY_PATH:
    runtime_library_dirs += [xc + 'lib']
    if 'xc' not in libraries:
        libraries.append('xc')

if 1:
    xc = '/home/k0472/k047203/local/'
    include_dirs += [xc + 'include']
    library_dirs += [xc + 'lib']
    extra_link_args += ['-Wl,-rpath={xc}lib'.format(xc=xc)]

そしてビルドを行います。

python setup.py build

問題無ければ、最後にインストールを行います。

python setup.py install

gpawのテスト

gpaw infoを実行してチェックを行いますが、フロントエンドで直接は実行できないので、以下のようにジョブスクリプトを作成してバッチジョブとして実行します。

run_gpw_info.sh
#!/bin/sh
#SBATCH -J gpaw_info
#SBATCH -p i8cpu
#SBATCH -N 1
#SBATCH -n 1

module purge

module load oneapi_compiler/2023.0.0 oneapi_mkl/2023.0.0 oneapi_mpi/2023.0.0

source ${HOME}/ASE/ase_oneapi_2023.0.0/bin/activate

srun gpaw info > gpaw_info.log

バッチジョブの投入:

sbatch run_gpaw_info.sh

実行結果:

 ----------------------------------------------------------------------------------------------------------------------------------
| python-3.8.17     /home/k0472/k047203/ASE/ase_oneapi_2023.0.0/bin/python                                                         |
| gpaw-24.1.0       /home/k0472/k047203/ASE/ase_oneapi_2023.0.0/lib64/python3.8/site-packages/gpaw/                                |
| ase-3.22.1        /home/k0472/k047203/ASE/ase_oneapi_2023.0.0/lib64/python3.8/site-packages/ase/                                 |
| numpy-1.24.4      /home/k0472/k047203/ASE/ase_oneapi_2023.0.0/lib64/python3.8/site-packages/numpy/                               |
| scipy-1.10.1      /home/k0472/k047203/ASE/ase_oneapi_2023.0.0/lib64/python3.8/site-packages/scipy/                               |
| libxc-5.2.3       yes                                                                                                            |
| _gpaw             /home/k0472/k047203/ASE/ase_oneapi_2023.0.0/lib64/python3.8/site-packages/_gpaw.cpython-38-x86_64-linux-gnu.so |
| MPI enabled       yes                                                                                                            |
| OpenMP enabled    yes                                                                                                            |
| GPU enabled       no                                                                                                             |
| GPU-aware MPI     no                                                                                                             |
| CUPY              /home/k0472/k047203/ASE/ase_oneapi_2023.0.0/lib64/python3.8/site-packages/gpaw/gpu/cpupy/__init__.py           |
| scalapack         yes                                                                                                            |
| Elpa              no                                                                                                             |
| FFTW              yes                                                                                                            |
| libvdwxc          no                                                                                                             |
| PAW-datasets (1)  /home/k0472/k047203/ASE/gpaw-setups-0.9.20000                                                                  |
 ----------------------------------------------------------------------------------------------------------------------------------

次にpytestを実行します。こちらも同様に以下のジョブスクリプトの作成、バッチジョブとして投入する必要があります。時間がかかるのでデバッグ用パーティションの制限時間内では終わらないのでF1cpuのパーティションを使用します。

run_pytest.sh
#!/bin/sh
#SBATCH -J pytest
#SBATCH -p F1cpu
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -c 128
#SBATCH -t 12:00:00

module purge

module load oneapi_compiler/2023.0.0 oneapi_mkl/2023.0.0 oneapi_mpi/2023.0.0

source ${HOME}/ASE/ase_oneapi_2023.0.0/bin/activate

srun pytest -v > pytest.log

バッチジョブの投入:

sbatch run_pytest.sh

pytest.logを見ると多くのテストはパスしていますが、以下のように幾つかのテストはうまくいっていないようでした。

FAILED gpaw/test/test_ibz2bz.py::test_ibz2bz[fe_pw] - assert False
FAILED gpaw/test/test_ibz2bz.py::test_ibz2bz[srvo3_pw] - RuntimeError: GPW fi...
FAILED gpaw/test/response/test_chiks.py::test_chiks[system8-0.25-True] - Asse...
FAILED gpaw/test/response/test_chiks.py::test_chiks[system9-0.25-False] - Ass...
FAILED gpaw/test/response/test_chiks.py::test_chiks[system10-0.5-True] - Asse...
FAILED gpaw/test/response/test_chiks.py::test_chiks[system11-0.5-False] - Ass...
FAILED gpaw/test/response/test_chiks.py::test_chiks[system12-0.0-True] - Asse...
FAILED gpaw/test/response/test_chiks.py::test_chiks[system13-0.0-False] - Ass...
FAILED gpaw/test/response/test_chiks.py::test_chiks[system14-0.25-True] - Ass...
FAILED gpaw/test/response/test_chiks.py::test_chiks[system15-0.25-False] - As...
FAILED gpaw/test/response/test_chiks.py::test_chiks[system16-0.5-True] - Asse...
FAILED gpaw/test/response/test_chiks.py::test_chiks[system17-0.5-False] - Ass...
FAILED gpaw/test/response/test_chiks.py::test_chiks_vs_chi0[system4-0.25] - A...
FAILED gpaw/test/response/test_chiks.py::test_chiks_vs_chi0[system5-0.5] - As...
FAILED gpaw/test/response/test_chiks.py::test_chiks_vs_chi0[system10-0.25] - ...
FAILED gpaw/test/response/test_response_band_cutoff.py::test_response_band_cutoff[srvo3_pw]
ERROR gpaw/test/test_generate_gpwfiles.py::test_generate_gpwfiles[srvo3_pw]

今後より実用的なテストを行って報告しようと思います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?