Skip to main content
QUICK REVIEW

[論文レビュー] Efficient pseudo-random number generators for biomolecular simulations on graphics processors

Artem Zhmurov, K. Rybnikov|arXiv (Cornell University)|Mar 4, 2010
Chaos-based Image/Signal Encryption参考文献 37被引用数 4
ひとこと要約

本稿では、バイオ分子シミュレーションの高速化を目的として、GPUに最適化された2つの擬似乱数生成器(RNG)戦略—スレッドごとのRNGと共有RNG—を提示する。Ran2、ハイブリッドTaus、ラグ付きフィボナッチアルゴリズムをGPU上で実装し、高い性能と統計的品質を達成した。Langevinダイナミクスシミュレーションにおいても強力なランダムネスを維持しながら、CPU手法に比べ最大50倍の高速化を実現した。

ABSTRACT

Langevin Dynamics, Monte Carlo, and all-atom Molecular Dynamics simulations in implicit solvent, widely used to access the microscopic transitions in biomolecules, require a reliable source of random numbers. Here we present the two main approaches for implementation of random number generators (RNGs) on a GPU, which enable one to generate random numbers on the fly. In the one-RNG-per-thread approach, inherent in CPU-based calculations, one RNG produces a stream of random numbers in each thread of execution, whereas the one-RNG-for-all-threads approach builds on the ability of different threads to communicate, thus, sharing random seeds across the entire GPU device. We exemplify the use of these approaches through the development of Ran2, Hybrid Taus, and Lagged Fibonacci algorithms fully implemented on the GPU. As an application-based test of randomness, we carry out LD simulations of N independent harmonic oscillators coupled to a stochastic thermostat. This model allows us to assess statistical quality of random numbers by comparing the simulation output with the exact results that would be obtained with truly random numbers. We also profile the performance of these generators in terms of the computational time, memory usage, and the speedup factor (CPU/GPU time).

研究の動機と目的

  • GPUアクセラレートされたバイオ分子シミュレーションにおける、高性能で統計的に堅牢な乱数生成のニーズに対応すること。
  • 並列処理が可能なGPUアーキテクチャにおいて、CPUベースのRNGの限界を克服するため、GPUネイティブなRNG実装を設計すること。
  • 分子動力学およびLangevinダイナミクスシミュレーションにおける、GPU最適化RNGの統計的品質と計算効率を評価すること。
  • 1スレッドあたり1つのRNGと、全スレッドで1つのRNGを共有するという2つの異なるGPU RNG戦略を比較すること。
  • N個の独立した調和振動子のベンチマークモデル(正確な解析解を有する)を用いて、ランダムネスの品質を検証すること。

提案手法

  • スレッドごとのRNG状態管理と、シミュレーションステップ間でのグローバルメモリへの状態保持を用いて、GPU実行に適したRan2アルゴリズムの適合。
  • 3つの独立したTauswortheストリームと線形合同生成器(LCG)を組み合わせたハイブリッドTausworthe生成器を実装し、統計的性質の向上を図った。
  • すべてのGPUスレッドで共有する1つの状態配列を用いたラグ付きフィボナッチ生成器を開発し、インデックスのモジュロ演算により円形バッファをシミュレートした。
  • スレッドインデックスを用いて、各スレッドに共有RNG状態配列内の固有の開始位置を割り当て、同時に乱数を生成可能にした。
  • 1命令複数データ(SIMD)実行モデルを採用し、各スレッドがローカル状態とグローバルメモリアクセスを用いて、1ステップあたり複数の乱数を生成した。
  • LangevinダイナミクスにおけるN個の調和振動子の統計的テストを実施し、シミュレートされたエネルギー分布と正確な解析結果を比較した。

実験結果

リサーチクエスチョン

  • RQ1GPU最適化RNGは、バイオ分子シミュレーションにおいて、高性能と強力な統計的品質の両方を達成できるか?
  • RQ2GPUアーキテクチャ上での1RNG/スレッドと1RNG/全スレッドのアプローチは、性能とランダムネス品質の観点でどのように比較できるか?
  • RQ3Ran2、ハイブリッドTaus、ラグ付きフィボナッチといったGPU実装RNGは、CPU実装と同等の統計的性質をどの程度維持できるか?
  • RQ4分子動力学シミュレーションにおいて、GPUベースRNGはCPUベースRNGに比べて最大どの程度の高速化が達成できるか?
  • RQ5生成された乱数は、調和振動子のテスト系において、理論的に予測される正確な統計的挙動をどの程度再現できるか?

主な発見

  • GPU最適化RNGであるRan2、ハイブリッドTaus、ラグ付きフィボナッチRNGは、統計的に妥当な乱数を生成し、N個の調和振動子に対する正確な解析解とシミュレーション結果が密接に一致した。
  • 全スレッドで1つのRNGを共有するラグ付きフィボナッチ生成器を用いた1RNG/全スレッドアプローチが、最も高いパフォーマンスを発揮し、CPU実装に比べ最大50倍の高速化が報告された。
  • 1RNG/スレッドアプローチは、スレッド間の統計的独立性が向上したが、スレッドごとの状態保存のため、より高いメモリ使用量を要した。
  • GPU実装されたすべてのRNGは、調和振動子モデルからの正確な結果との比較によって、高い統計的品質を維持していた。
  • グローバルメモリアクセスを最小限に抑え、メモリアクセスのコalescingを活用することで、GPU RNGの計算効率が最大化された。
  • パフォーマンスプロファイルから、GPUベースRNGは1枚のGPUチップで最大1 TFLOP/sの性能を達成した。これは、大規模なバイオ分子シミュレーションに適していることを示した。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。