Command Palette
Search for a command to run...
LAMMPS-Bench分子動力学ベンチマークデータセット
※本データセットはオンライン利用に対応しておりますが、ここをクリックしてジャンプしてください。
LAMMPS ベンチマーク データセットは、さまざまなハードウェアまたは構成での LAMMPS (分子動力学シミュレーション ソフトウェア) のパフォーマンスをテストおよび比較するために使用されます。
これらのデータセットは科学的な実験データではありませんが、計算性能(速度、スケーリング、効率)を評価するために使用されます。これらのデータセットには、特定のアーキテクチャ、力場ファイル、入力スクリプト、初期原子座標などが含まれており、LAMMPSによって公式にbench/フォルダ内に提供されています。
関連する論文結果は「LAMMPS – 原子、メソ、連続スケールでの粒子ベースの材料モデリングのための柔軟なシミュレーションツール「」は、サンディア国立研究所がミシガン州立大学、テンプル大学などの機関と共同で2022年に発表した。
このデータセットには5つのベンチマーク問題が含まれており、LAMMPSドキュメントのベンチマークセクションとLAMMPS公式サイトのベンチマークページ(https://www.lammps.org/bench.html) については で説明します。
このデータセットにはサブディレクトリも含まれています:
POTENTIALS: LAMMPS における様々なポテンシャルのベンチマークスクリプト
これらすべてのベンチマークの結果は、LAMMPS ウェブサイトのベンチマーク ページに表示され、説明されています。https://www.lammps.org/bench.html
この導入部の残りの部分では、データセットに含まれる5つのベンチマーク問題と、それらをCPU上で(逐次または並列で)実行する方法を説明します。サブディレクトリにはそれぞれのREADMEファイルが含まれており、スクリプトを実行する前に必ずお読みください。
以下に 5 つのベンチマークの質問を示します。
LJ = 原子流体、カットオフ半径 2.5 σ (原子あたり約 55 近傍) の Lennard-Jones ポテンシャルを使用し、NVE アンサンブルで時間積分されます。
チェーン = FENE 結合と、カットオフ半径 2^(1/6) σ (原子あたり約 5 つの隣接原子) のレナード・ジョーンズ対相互作用を使用して 100 個のモノマーから構成されるビーズスプリングポリマー溶融体、NVE アンサンブルで時間積分。
EAM = 金属固体、カットオフ半径 4.95 Å (原子あたり約 45 近傍) の銅 (Cu) の埋め込み原子ポテンシャル (EAM ポテンシャル) を使用し、NVE アンサンブルで時間積分。
シュート = 摩擦履歴項とカットオフ半径 1.1σ (原子あたり約 7 近傍) を持つポテンシャル関数を使用し、NVE アンサンブルで時間積分された粒状シュート フロー。
Rhodo = 溶媒和脂質二重層中のロドプシン。CHARMM力場を用いて、LJカットオフ半径10Å(原子あたり約440近傍)のロドプシンを測定した。長距離クーロン相互作用は、粒子-粒子/粒子ネットワーク法(PPPM)とNPTアンサンブルにおける時間積分を用いて計算した。
5つの問題はそれぞれ32,000個の原子を含み、100ステップで実行されます。各テストは、シリアルベンチマーク(単一プロセッサ)または並列で実行できます。並列モードでは、各ベンチマークを固定サイズまたはスケールサイズの問題として実行できます。固定サイズベンチマークでは、同じ32K原子システムを異なる数のプロセッサで実行します。スケールサイズベンチマークでは、システムサイズはプロセッサ数に応じて変化します。例えば、256K原子システムは8個のプロセッサで実行され、3200万原子システムは1,024個のプロセッサで実行されます。
このデータセットには、異なるマシンや異なるプロセッサ数で実行されたサンプルログファイルが含まれており、結果を比較するために使用できます。例えば、log.date.chain.lmp.scaled.foo.P というログファイルは、日付で識別されるLAMMPSバージョンを使用して、Pプロセッサを搭載したマシン「foo」で実行されたChainベンチマークのスケールバージョンを表しています。EamベンチマークとLjベンチマークは、異なるマシンで実行された場合、全く同じ結果が得られない可能性があることに注意してください。これは、「velocity loop geom」オプションが原子座標に基づいて速度を割り当てるためです。詳細については、velocityコマンドのドキュメントを参照してください。
実行の CPU 時間 (秒単位) は、ログ ファイルの「ループ時間」行に表示されます。次に例を示します。
32000個の原子で8つのプロセス、100ステップのループ時間は3.89418
さまざまなマシンでのこれらの問題のタイミング結果は、LAMMPS Web サイトのベンチマーク ページで確認できます。
LAMMPS 実行可能ファイルが lmp_mpi と呼ばれていると仮定して、各問題を実行する方法は次のとおりです。
mpirun コマンドを使用して並列実行を開始します。
シリアル操作(シングルプロセッサ):
lmp_mpi -in in.lj
lmp_mpi -in in.chain
lmp_mpi -in in.eam
lmp_mpi -in in.chute
lmp_mpi -in in.rhodo
並列固定サイズ実行 (この例では 8 プロセッサ):
mpirun -np 8 lmp_mpi -in in.lj
mpirun -np 8 lmp_mpi -in in.chain
mpirun -np 8 lmp_mpi -in in.eam
mpirun -np 8 lmp_mpi -in in.chute
mpirun -np 8 lmp_mpi -in in.rhodo
並列スケーラブル操作(この例では 16 個のプロセッサ):
mpirun -np 16 lmp_mpi -var x 2 -var y 2 -var z 4 -in in.lj
mpirun -np 16 lmp_mpi -var x 2 -var y 2 -var z 4 -in in.chain.scaled
mpirun -np 16 lmp_mpi -var x 2 -var y 2 -var z 4 -in in.eam
mpirun -np 16 lmp_mpi -var x 4 -var y 4 -in in.chute.scaled
mpirun -np 16 lmp_mpi -var x 2 -var y 2 -var z 4 -in in.rhodo.scaled
シュート操作にはPz = 1が必要です。
つまり、P = Px * Py となり、変数 x と y を設定するだけです。