分子動力学法関連の記事まとめ

# はじめに

Qiitaに書いてきた分子動力学法(Molecular Dynamics method, MD)関連の記事が溜まってきたのでまとめておく。新しいの書いたら追記していくかもしれない。僕が書いた奴じゃないのも含めている。

僕が書いた奴

分子動力学法ステップ・バイ・ステップ

分子動力学法をスクラッチから書いてみようというもの。

  • その1  $O(N^2)$のルーチンまで
  • その2  ペアリストの構築とBookkeeping法
  • その3  メッシュ探索
  • その4  少しだけ高速化
  • その5  温度制御法を三種類実装してみる
  • その6  圧力測定ルーチンの実装

SIMD化関連

LJの力計算のSIMD化ステップ・バイ・ステップ

SIMD化しようと苦闘する過程を晒そうという試み。

  • その0  SIMD化の方針について
  • その1  ペアのループのソフトウェアパイプライニング
  • その2  ソフトウェアパイプライニングの改良
  • その3  ループの4倍展開
  • その3.5  展開したループのSIMD化の途中経過。デバッグ方法など
  • その4  実測(遅かった・・・○ _)
  • その5  i粒子でソートしたものをソフトウェアパイプライニングしたものをSIMD化
  • その6  ベクトルの転置を先にしたら早くなった話

数値積分法についての話題

解析力学の話

その他の話題

@kohnakagawa さんによるMD関連の記事

SIMD化、GPGPU化で早いコードを書く @kohnakagawa さんによるMD関連の記事まとめ。

GPGPU関連

AVX命令を用いたVerlet list構築のSIMD化

  • その1  4倍アンロール+SIMD化
  • その2  データのパック
  • その3  外側をアンロール
  • その4  細かいチューニング

その他の話題

まとめ

パッケージソフト使うのもいいけど、MDをゼロから組むのも高速化するのも楽しいからみんなでやろう!相互作用を限定すればコード量も大したことないし、ホットスポットがはっきりしているから高速化しやすいしね。