LoginSignup
1
2

More than 1 year has passed since last update.

分子動力学計算ライブラリHoomd-Blueの記事書いてみた。インストール編

Posted at

Hoomd-Blueとは?

GPT4曰く

HOOMD-blueは、一般的な粒子シミュレーションを実行するための強力なフレームワークで、主に分子動力学(Molecular Dynamics, MD)やハード粒子モンテカルロ(Hard Particle Monte Carlo, HPMC)シミュレーションに用いられます。

以下にHOOMD-blueの主な特徴をいくつか挙げます:

  1. GPU最適化:HOOMD-blueは、Graphics Processing Units (GPU) 上で最適化されています。GPUは高度な並列計算能力を持っており、これによりHOOMD-blueは大規模な粒子システムのシミュレーションを効率的に実行することが可能です。

2.柔軟性と拡張性:HOOMD-blueはPythonのAPIを提供しています。これによりユーザーは自由にシミュレーションを設定し、実行することができます。また、HOOMD-blueは様々な種類の力場や分子モデルをサポートしています。

3.可視化:HOOMD-blueは直接VMD(Visual Molecular Dynamics)といったモーレキュラーシミュレーションデータの可視化ツールと統合できます。これにより、シミュレーションの進行状況をリアルタイムで視覚的に確認することができます。

4.高性能:GPU上での最適化と高度なアルゴリズムにより、HOOMD-blueは高速で精密なシミュレーションを提供します。

それらの特徴により、HOOMD-blueは物理学、化学、材料科学、生物学など、幅広い分野での科学的研究に利用されています。さらに、その柔軟性と拡張性により、ユーザーは自身の問題に特化したカスタムシミュレーションを容易に作成することができます。

とのこと。

個人的なHoomdを使うメリット

  • Pythonでかけるので、非情報系学生には扱いやすい。
  • 明らかに早い。きちんと計測したことはないが、ある程度のシステムサイズなら生Pythonに比べると確実に100倍以上は早い。

デメリット

  • 他の分子動力学計算ライブラリと比較して新しいので文献が少なく、基本的にドキュメントまたは、Users-Groupくまなくチェックして実装しなければならない。また、ver2にからver3へのアプデに際して大きく記法などが変化したので要注意。おそらくGPT4に聞いてもまともなコードは帰ってこない。

インストール

GPUをつかわないなら基本的にはAnacondaから

conda install -c conda-forge hoomd

このコマンドでインストールできる。

GPUを使いたいときは、以前まではSourceからビルドをしなければならなかったが、最近のversionだと

conda install -c conda-forge "hoomd=*=*gpu*"

このコマンドでインストールできる。

が、筆者はなぜかこれをできなかったのでSourceからBuildする方法も紹介する。

Building from soruce

sourceのビルドについては、こちらのページ
に書いてあることまんまだが、いろいろ書いてあって必要な部分を読み飛ばしてしまう恐れもあるので、最低限のステップだけを示していく。

筆者の環境
Ubuntu: 22
Python: 3.10 anacondaを使用
CUDA Version: 11.7
gcc: 11.3.0
cmake: 3.22.1

Install prerequisites

前提条件を用意しておきます。
最低限必要なのは

  • C++17 capable compiler (tested with gcc 7 - 12 and clang 6 - 14)
  • Python >= 3.6
  • NumPy >= 1.7
  • pybind11 >= 2.2
  • Eigen >= 3.2
  • CMake >= 3.9

このうちgcc、Python、numpy,CMakeは自力でそろえてください。
(筆者はapt install build-essentialとanaconda入れることでいつの間にかそろってた

pybind11とEigen(とcereal)は

python3 hoomd-blue/install-prereq-headers.py

を実行してやるとよしなに入れてくれます。
(筆者はこれに気づかずaptで入れたpybind11などをつかってビルドしようとしたらうまくいかずだいぶ苦戦しました)

また、MPIをつかって並列計算をしたい方は追加で

  • MPI (tested with OpenMPI, MVAPICH)
  • cereal >= 1.1

GPUを使いたい方は

  • NVIDIA CUDA Toolkit>= 9.0
    OR
  • AMD ROCm >= 3.5.0 (これは追加で必要なものがいろいろあるのでDocを見てください)

を入れておきましょう。

Obtain the source

ソースコードをgit cloneで持ってきます。
適当な場所で

git clone --recursive https://github.com/glotzerlab/hoomd-blue

をすると、カレントディレクトリ下にhoomd-blueのフォルダが入ってきます。

Configure

cmakeでオプション設定をします。
Docをみると色々なオプションがあるのですが、今回はGPUが使えればいいので

ENABLE_GPU - When enabled, compiled GPU accelerated computations (default: off).

これだけを適用してあげればOKです。

ということで

 cmake -B build/hoomd -S hoomd-blue -DENABLE_GPU=on

これを実行します。

これを実行すると。カレントディレクトリ下にbuildフォルダができます。きちんとオプションを設定できているか確認したい場合は./build/CmakeCache.txtにかいてあります。
もし、オプションつけわすれた場合は一度buildフォルダをけして先ほどのコードをやり直すか、./build/CmakeCache.txtを直接編集するといいと思います。

Building the package

後はbuildするだけです。

cmake --build build/hoomd

結構時間がかかります、、、、

ビルドが完成すると。hoomdが使えるようになります。うまくいっていると

cd build/hoomd
python
>>> import hoomd
>>> hoomd.version.enabled_gpu
True

と帰ってくるはずです。

Install the package(option)

このままだとbuild/hoomd下でしかhoomdが使えないのでpythonの仮想環境にinstallしてあげる必要があります。

anacodnaを使っている場合はhoomdを使いたい仮想環境をactivateした状態で

cmake --install build/hoomd

としてあげると、
anaconda3/lib/python3.x/site-packages/ (base環境にinstallした場合)
anaconda3/envs/env_name/lib/python3.x/site-packages/ (自作環境にinstallした場合)
にhomodが入っているはずです。

ここまで行けば、どのレポジトリでもhoomdを使うことができます。
なんかcmake installするのが怖い!という人は

import sys
import os
sys.path.append('build/hoomdまでの絶対パス')
import hoomd

としてやることで何とかなります。(めんどくさいですが)

次回はHoomdの簡単な使い方について説明していければと思います。

1
2
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
2