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?

CP2Kの使い方: インストール

Last updated at Posted at 2024-07-03

CP2Kとは

  • 原子・分子レベルでの第一原理計算ソフトウェア
  • 密度汎関数理論(density functional theory: DFT)、Hatree-Fock、Moller-Presset摂動法(MP2)などの計算ができる
  • 周期境界条件(periodic boundary condition: PBC)のある場合とない場合の両方が計算可能
  • 基底関数は局在基底(Gauss関数)と平面波規定の両方を使う(mixed basis set)
  • 全てフリー・オープンソースで利用可能 -> メリット
  • 更新が頻繁(年2,3回程度?)に行われ、新しい手法が順次追加される -> メリット
  • マニュアル等が少なく、特に日本語のリソースが少ない -> デメリット

コンパイル

Linuxでのコンパイル

  • 環境: PRIMERGY CX2550, Intel Xeon Gold, cp2k-2023.1

  • 手順

    1. intelコンパイラをロード: module load intel; module load impi
    2. Githubからソースをダウンロード: git clone -b support/v2023.1 --recursive https://github.com/cp2k/cp2k.git cp2k-2023.1
    3. cd cp2k-2023.1
    4. git submodule update --init --recursive
    5. cd tool/toolchain
    6. 補助ライブラリ等をコンパイル: ./install_cp2k_toolchain.sh --mpi-mode=intelmpi --math-mode=mkl --with-elpa=install --with-pexsi=install --with-sirius=no --with-plumed=install
      • --with-PKG=installで各パッケージがインストールされる。入れない場合は=no
      • 実際に使うかわからないけど、入れれるものは入れたほうがいい?
      • elpaは入れたほうが計算が早いような印象
      • siriusはコンパイルできないことが多いのでパス
    7. cd ../../
    8. makefileを編集
      • ./archに対応するmakefileがあるので編集する
      • この場合はLinux-intel-x86_64.psmp
      • CXX=icpcを追加
      • SIRIUS, SCOTCHなど、使っていないライブラリのUSE...ををコメントアウト
    9. make ARCH=Linux-intel-x86_64 VERSION=psmp
  • cp2kのバージョンやコンパイル環境で補助ライブラリがコンパイルできる・できないが変わるので注意。基本的にはBLAS, LAPACK, XSMMがあればよい。LIBXC, LIBINTも可能であればコンパイルしたい。

Dockerを使う場合

  • 環境: Ubuntu- 20.04-LTS (Google Cloud Platform)
  1. sudo apt-get install curl
  2. curl -fsSL https://get.docker.com -o get-docker.sh
  3. sudo sh get-docker.sh: ここまでdockerのインストール
  4. sudo usermod -aG docker your_user_name: 権限の設定
  5. docker run -it --rm -v $PWD:/mnt cp2k/cp2k:latest cp2k -i H2O-32.inp: cp2kの実行

MacOSでのコンパイル

  1. brew uninstall cp2k
  2. brew unlink open-mpi scalapack
  3. ln -f -s /opt/homebrew/bin/gcc-13 /opt/homebrew/bin/gcc
  4. ln -f -s /opt/homebrew/bin/g++-13 /opt/homebrew/bin/g++
  5. ln -f -s /opt/homebrew/bin/gfortran-13 /opt/homebrew/bin/gfortran
  6. git clone --recursive https://github.com/cp2k/cp2k.git cp2k
  7. cd cp2k
  8. source arch/Darwin-gnu-arm64.ssmp
  9. make -j ARCH=Darwin-gnu-arm64 VERSION=ssmp

バイナリの種類

  • 並列計算に用いるライブラリ(OpenMP, MPI)によってcp2kバイナリファイルの種類が異なる
種類 並列計算の設定
sdbg OpenMP + debug settings
sopt OpenMP + OMP_NUM_THREADS=1
ssmp OpenMP
pdbg MPI + OpenMP + debug settings
popt MPI + OpenMP + OMP_NUM_THREADS=1
psmp MPI + OpenMP
  • poptはpsmpをリンクしているだけなので、実際はpsmpのみをコンパイルすればよい

プログラムの実行

serial計算

  • コンパイルしたcp2kは${HOME}/cp2k/cp2k-version/cp2k/exe/Linux-.../cp2k.soptとする
  • 実行コマンド: cp2k.sopt -i input.inp -o output.out

parallel計算

  • プロセス数をNPROCSとする
  • 実行コマンド: mpiexec -n $NPROCS cp2k.popt -i input.inp -o output.out
    • mpiexec.hydra -n ${PJM_MPI_PROC}を使う場合もある
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?