CP2K_Benchmark パフォーマンスベンチマークデータセット
CP2Kベンチマークデータセットは、高性能コンピューティング(HPC)環境向けに特別に設計されたパフォーマンステストおよび検証入力のセットです。オープンソースの第一原理シミュレーションソフトウェアCP2Kから派生したこのデータセットは、異なるハードウェアプラットフォーム、並列化戦略(MPI/OpenMP)、およびコンパイル最適化設定における量子化学および分子動力学計算のパフォーマンスを評価するために使用されます。
このデータセットは、科学実験データとは異なり、主に高性能コンピューティングの性能評価(実行速度、並列効率、スケーラビリティなど)に使用されます。CP2K公式チームによって管理されています。データと入力ファイルは、ソースコードのbenchmarks/ディレクトリにあります。
関連する論文結果は「CP2K: 凝縮系原子シミュレーション2013年にスイス連邦工科大学チューリッヒ校、チューリッヒ大学、バーゼル大学などの機関によって出版された「2013年版 スイス連邦工科大学チューリッヒ校研究報告」です。
データセットの構造
データセットは、CP2K ソース コード リポジトリの benchmarks/ ディレクトリにあり、いくつかのサブディレクトリと入力ファイルが含まれています。
benchmarks/
├── Fayalite-FIST/ # FIST 模块基准,Fayalite 体系
├── QS/ # Quickstep 模块基准(DFT/MD)
├── QS_DM_LS/ # 线性标度 DFT 基准
├── QS_HFX/ # 混合泛函 HFX 基准
├── QS_diag/ # 对角化算法基准
├── QS_mp2_rpa/ # MP2 / RPA 高精度基准
├── QS_ot_ls/ # 轨道变换线性标度 DFT 基准
├── QS_pao_ml_tio2/ # PAO / ML 势 TiO₂ 基准
├── QS_rubri/ # Rubredoxin 蛋白质基准
├── QS_single_node/ # 单节点 Quickstep 基准
├── QS_stmv/ # STMV 病毒体系基准
├── README.md # 各基准说明文档
各サブディレクトリには次のものが含まれます。
- アーキテクチャ ファイル (.xyz、.psf、.pdb など)
- CP2K入力スクリプト(.inp)
- エネルギー結果と出力テンプレートを参照
- スクリプトの実行とパフォーマンス記録
データセットの内容
このデータセットには複数の標準化されたベンチマーク問題が含まれており、それぞれの問題は典型的な科学計算シナリオを表し、古典的な分子動力学から第一原理電子構造まで、さまざまな計算タイプをカバーしています。
- H₂O-64
- タイプ: DFT + 分子動力学
- システム: 64個の水分子 (192個の原子/512個の電子)
- 目的: 中規模システムにおける標準的な量子化学シミュレーションのパフォーマンスとスケーラビリティをテストします。
- フェイアライト-FIST
- タイプ: 古典分子動力学 (FIST モジュール)
- 系: ファイヤライト結晶(Fe₂SiO₄スーパーセル、約28,000原子)
- 目的: 大規模システムにおける古典的な力場計算と長距離電場合計アルゴリズムのパフォーマンスを評価する。
- LiH-HFX
- タイプ: ハイブリッドDFT (HFXシングルポイント計算)
- システム: LiH結晶 (216原子/432電子)
- 目的: マルチスレッド並列処理におけるハイブリッド交換関数の負荷と通信効率をテストします。
- H₂O-DFT-LS
- タイプ: 線形スケーリングDFT
- システム: 2048個の水分子(6144個の原子)
- 目的: 大規模並列処理における線形スケーリング アルゴリズムのスケーラビリティとメモリ要件を評価する。
- H₂O-64-RI-MP2
- タイプ: MP2法 + RI近似
- システム: H₂O-64と同じ
- 目的: HPC における高次 ab initio 法のパフォーマンスと計算オーバーヘッドをテストします。
ランニングベンチマーク
いくつかのベンチマークを実行する前に、必要な入力ファイル (波動関数ファイルなど) を生成するための前処理手順を完了する必要がある場合があります。
これらの準備については、対応するベンチマークサブディレクトリ内のREADME.mdファイルに詳細が記載されています。テストを開始する前に、関連する手順を読むことをお勧めします。
データセットのベンチマークは通常、MPIとOpenMPの両方を用いたハイブリッド並列モードで実行されます。次の例は、ベンチマークを実行するために各MPIプロセスに2つのスレッドを割り当てる方法を示しています。
export OMP_NUM_THREADS=2
parallel_launcher launcher_options path_to_cp2k.psmp -i inputfile.inp -o logfile.log
で:
- parallel_launcher は、mpirun、mpiexec、または Cray システム上の aprun などのバリアント、あるいは Slurm ジョブ スケジューリングを使用する場合は srun です。
- launcher_options は、並列実行時のノード数、MPIプロセス数、ノードあたりのタスク数、およびタスクあたりのスレッド数を指定します(OMP_NUM_THREADS の値と同じである必要があります)。並列実行設定がジョブ環境によって自動的に設定される場合、手動で指定する必要はありません。
ベンチマーク結果を取得する
ベンチマークを実行した後、ユーザーはログ ファイルに内部タイミング情報を出力することで、CP2K の実際の実行時間 (ウォールタイム) を取得できます。
データセットによって提供されるすべてのベンチマークでは、このタイミング情報がログ ファイルに記録されるため、ユーザーは異なるハードウェアまたは並列構成でのパフォーマンスを簡単に比較できます。
取得方法の例は次のとおりです。
grep "CP2K " *.log
さらに、ログ ファイルの最後にはいくつかのパフォーマンス統計が含まれます。
- DBCSR統計:DBCSRモジュールの計算および通信パフォーマンス統計を表示します。最初の数行には、異なる小行列ブロックサイズにおける浮動小数点演算(FLOP)回数と、BLAS、SMM(小行列乗算器)、GPU(ACC)におけるこれらの演算の分布が表示されます。
- DBCSR メッセージ パッシング パフォーマンス: DBCSR モジュールの MPI 呼び出しパフォーマンス統計を表示します。
- メッセージ パッシング パフォーマンス: CP2K の他の部分の MPI 通信パフォーマンス統計を表示します。
- タイミング: 各関数の呼び出し時間と呼び出し回数を一覧表示します。
描画
このプロジェクトでは、データセットを視覚化するためのスケーリング チャートを生成する Python スクリプトも提供されており、次のディレクトリにあります。
cp2k/tools/benchmark_plots/Build AI with AI
From idea to launch — accelerate your AI development with free AI co-coding, out-of-the-box environment and best price of GPUs.