gmx tune_pme¶
概要¶
gmx tune_pme [-s [<.tpr>]] [-cpi [<.cpt>]] [-table [<.xvg>]]
[-tablep [<.xvg>]] [-tableb [<.xvg>]]
[-rerun [<.xtc/.trr/...>]] [-ei [<.edi>]] [-p [<.out>]]
[-err [<.log>]] [-so [<.tpr>]] [-o [<.trr/.cpt/...>]]
[-x [<.xtc/.tng>]] [-cpo [<.cpt>]]
[-c [<.gro/.g96/...>]] [-e [<.edr>]] [-g [<.log>]]
[-dhdl [<.xvg>]] [-field [<.xvg>]] [-tpi [<.xvg>]]
[-tpid [<.xvg>]] [-eo [<.xvg>]] [-px [<.xvg>]]
[-pf [<.xvg>]] [-ro [<.xvg>]] [-ra [<.log>]]
[-rs [<.log>]] [-rt [<.log>]] [-mtx [<.mtx>]]
[-swap [<.xvg>]] [-bo [<.trr/.cpt/...>]] [-bx [<.xtc>]]
[-bcpo [<.cpt>]] [-bc [<.gro/.g96/...>]] [-be [<.edr>]]
[-bg [<.log>]] [-beo [<.xvg>]] [-bdhdl [<.xvg>]]
[-bfield [<.xvg>]] [-btpi [<.xvg>]] [-btpid [<.xvg>]]
[-bdevout [<.xvg>]] [-brunav [<.xvg>]] [-bpx [<.xvg>]]
[-bpf [<.xvg>]] [-bro [<.xvg>]] [-bra [<.log>]]
[-brs [<.log>]] [-brt [<.log>]] [-bmtx [<.mtx>]]
[-bdn [<.ndx>]] [-bswap [<.xvg>]] [-xvg <enum>]
[-mdrun <string>] [-np <int>] [-npstring <enum>]
[-ntmpi <int>] [-r <int>] [-max <real>] [-min <real>]
[-npme <enum>] [-fix <int>] [-rmax <real>]
[-rmin <real>] [-[no]scalevdw] [-ntpr <int>]
[-steps <int>] [-resetstep <int>] [-nsteps <int>]
[-[no]launch] [-[no]bench] [-[no]check]
[-gpu_id <string>] [-[no]append] [-[no]cpnum]
[-deffnm <string>]
説明¶
指定された数 -np または -ntmpi のランクに対して、gmx tune_pme は、さまざまな PME ランクの組み合わせで gmx mdrun を繰り返し実行し、最も高速な設定を特定します。 また、Ewald の和の反復部分から実空間部分への負荷の移動によってパフォーマンスを向上させることができるかどうかもテストします。 必要なオプションとともに、gmx tune_pme に、gmx mdrun のための .tpr ファイルを渡すだけです。
gmx tune_pme は gmx mdrun を呼び出す必要があり、そのため、-mdrun パラメータの引数として mdrun を呼び出す方法を指定する必要があります。 GROMACS の構築方法によって、'gmx mdrun'、'gmx_d mdrun'、または 'gmx_mpi mdrun' のような値が必要になる場合があります。
実行するMPIプログラムを制御するプログラムは、環境変数MPIRUNで設定できます(デフォルトは'mpirun')。ただし、特定のMPIフレームワークでは、マシンまたはホストファイルを提供する必要があります。これは、MPIRUN変数を通じて指定することもできます(例:)。
export MPIRUN="/usr/local/mpirun -machinefile hosts"
この場合、通常はMPIサポートなしで gmx tune_pme をコンパイルおよび/または実行し、MPIRUNプログラムを呼び出す必要があることに注意してください。
実際のベンチマーク実行を行う前に、gmx tune_pme は、-check オプションが有効になっている(デフォルト)場合、gmx mdrun が指定された並列設定で正常に動作するかどうかを迅速に確認します。gmx tune_pme を実行するには、通常 gmx mdrun に渡すオプションと、テストを実行するスレッド数を示す -np オプション、または -ntmpi オプションを追加します。また、統計を改善するために、-r オプションを使用して各テストを複数回繰り返すこともできます。
gmx tune_pme は、さまざまなリアル空間/周期空間のワークロードをテストできます。 -ntpr オプションを使用すると、拡張されたカットオフと、それぞれより小さなフーリエグリッドを持つ追加の .tpr ファイルの数を制御できます。 通常、最初のテスト(番号 0)は、入力 .tpr ファイルからの設定を使用します。 最後のテスト(番号 ntpr)は、-rmax で指定されたクーロンカットオフと、ほぼ同じサイズの PME グリッドを使用します。 この最後のテストでは、フーリエ間隔は rmax/rcoulomb で乗算されます。 残りの .tpr ファイルは、これらの極点の間で等間隔のクーロン半径(およびフーリエ間隔)を持ちます。 注意:PME のみを使用する場合に最適な数の PME ランクを求める場合は、-ntpr を 1 に設定できます。 その場合、入力 .tpr ファイルは変更されません。
ベンチマーク実行の場合、デフォルトの1000ステップは、ほとんどのMDシステムで十分です。動的な負荷分散には、約100ステップが必要で、これによりローカルの負荷の不均衡に対応します。そのため、ステップカウンターはデフォルトで100ステップごとにリセットされます。100万個以上の原子を持つ大規模なシステムや、測定の精度を高める場合、`-resetstep`をより高い値に設定する必要があります。`md.log`出力ファイル内の「DD」負荷不均衡のエントリから、負荷が十分に均衡するまでのステップ数を判断できます。例:
gmx tune_pme -np 64 -s protein.tpr -launch
gmx mdrun を複数回実行した後、詳細なパフォーマンス情報は、出力ファイル perf.out にあります。 注意:ベンチマーク実行中に、いくつかの一時ファイルが作成されます(オプション -b*)。これらのファイルは、各テスト後に自動的に削除されます。
最適化されたパラメータを使用してシミュレーションを自動的に開始するには、コマンドラインオプション -launch を使用してください。
基本的なGPU対応の mdrun のサポートが提供されています。最適化に使用するGPUのIDを含む文字列を、コマンドライン引数の -gpu_id に指定します。これは mdrun -gpu_id と同じように動作し、マッピングは行わず、利用可能なGPUデバイスのセットを単に指定します。 gmx-tune_pme は、このセットを使用して mdrun の呼び出しを構築します。 gmx-tune_pme は -gputasks をサポートしていません。
オプション¶
入力ファイルの指定オプション:
-s[<.tpr>] (topol.tpr)ポータブル XDR 実行入力ファイル
-cpi[<.cpt>] (state.cpt) (オプション)チェックポイントファイル
-table[<.xvg>] (table.xvg) (オプション)xvgr/xmgr ファイル
-tablep[<.xvg>] (tablep.xvg) (オプション)xvgr/xmgr ファイル
-tableb[<.xvg>] (table.xvg) (オプション)xvgr/xmgr ファイル
-rerun[<.xtc/.trr/...>] (rerun.xtc) (オプション)-ei[<.edi>] (sam.edi) (オプション)ED サンプリング入力
出力ファイルの指定オプション:
-p[<.out>] (perf.out)汎用出力ファイル
-err[<.log>] (bencherr.log)ログファイル
-so[<.tpr>] (tuned.tpr)ポータブル XDR 実行入力ファイル
-o[<.trr/.cpt/...>] (traj.trr)-x[<.xtc/.tng>] (traj_comp.xtc) (オプション)圧縮された軌跡 (TNG形式またはPortable XDR形式)
-cpo[<.cpt>] (state.cpt) (オプション)チェックポイントファイル
-c[<.gro/.g96/...>] (confout.gro)-e[<.edr>] (ener.edr)エネルギーファイル
-g[<.log>] (md.log)ログファイル
-dhdl[<.xvg>] (dhdl.xvg) (オプション)xvgr/xmgr ファイル
-field[<.xvg>] (field.xvg) (オプション)xvgr/xmgr ファイル
-tpi[<.xvg>] (tpi.xvg) (オプション)xvgr/xmgr ファイル
-tpid[<.xvg>] (tpidist.xvg) (オプション)xvgr/xmgr ファイル
-eo[<.xvg>] (edsam.xvg) (オプション)xvgr/xmgr ファイル
-px[<.xvg>] (pullx.xvg) (オプション)xvgr/xmgr ファイル
-pf[<.xvg>] (pullf.xvg) (オプション)xvgr/xmgr ファイル
-ro[<.xvg>] (rotation.xvg) (オプション)xvgr/xmgr ファイル
-ra[<.log>] (rotangles.log) (オプション)ログファイル
-rs[<.log>] (rotslabs.log) (オプション)ログファイル
-rt[<.log>] (rottorque.log) (オプション)ログファイル
-mtx[<.mtx>] (nm.mtx) (オプション)ヘッセ行列
-swap[<.xvg>] (swapions.xvg) (オプション)xvgr/xmgr ファイル
-bo[<.trr/.cpt/...>] (bench.trr)-bx[<.xtc>] (bench.xtc)圧縮された軌跡 (portable xdr形式): xtc
-bcpo[<.cpt>] (bench.cpt)チェックポイントファイル
-bc[<.gro/.g96/...>] (bench.gro)-be[<.edr>] (bench.edr)エネルギーファイル
-bg[<.log>] (bench.log)ログファイル
-beo[<.xvg>] (benchedo.xvg) (オプション)xvgr/xmgr ファイル
-bdhdl[<.xvg>] (benchdhdl.xvg) (オプション)xvgr/xmgr ファイル
-bfield[<.xvg>] (benchfld.xvg) (オプション)xvgr/xmgr ファイル
-btpi[<.xvg>] (benchtpi.xvg) (オプション)xvgr/xmgr ファイル
-btpid[<.xvg>] (benchtpid.xvg) (オプション)xvgr/xmgr ファイル
-bdevout[<.xvg>] (benchdev.xvg) (オプション)xvgr/xmgr ファイル
-brunav[<.xvg>] (benchrnav.xvg) (オプション)xvgr/xmgr ファイル
-bpx[<.xvg>] (benchpx.xvg) (オプション)xvgr/xmgr ファイル
-bpf[<.xvg>] (benchpf.xvg) (オプション)xvgr/xmgr ファイル
-bro[<.xvg>] (benchrot.xvg) (オプション)xvgr/xmgr ファイル
-bra[<.log>] (benchrota.log) (オプション)ログファイル
-brs[<.log>] (benchrots.log) (オプション)ログファイル
-brt[<.log>] (benchrott.log) (オプション)ログファイル
-bmtx[<.mtx>] (benchn.mtx) (オプション)ヘッセ行列
-bdn[<.ndx>] (bench.ndx) (オプション)インデックスファイル
-bswap[<.xvg>] (benchswp.xvg) (オプション)xvgr/xmgr ファイル
Other options:
-xvg<enum> (xmgrace)形式: xmgrace, xmgr, なし
-mdrun<文字列>シミュレーションを実行するためのコマンドライン、例: 'gmx mdrun' または 'gmx_mpi mdrun'
-np<int> (1)テストを実行するレーンの数 (個別のPMEレーンの場合は、2より大きくする必要があります)
-npstring<enum> (np)``$MPIRUN``オプションの名前で、使用するスレッド数を指定します('np'または'n'を使用し、そのようなオプションがない場合は'none'を使用)。 np, n, none
-ntmpi<int> (1)テストを実行するMPIスレッドの数 (MPIとmpirunを無効化)
-r<int> (2)各テストをこの頻度で繰り返してください
-max<実数値> (0.5)PMEのランクをテストする割合の最大値
-min<実数> (0.25)最小の PME ランクのテスト数
-npme(自動)-minと-maxの範囲内で、--npmeのすべての可能な値をベンチマークするか、または適切なサブセットを選択します。autoは-minと-maxを無視し、.tprから推測したnpmeの適切な値を自動的に選択します。auto,all,subset-fix<int> (-2)もし >= -1 の場合、PME のみのランク数を変更せず、代わりに固定値を維持し、rcoulomb と PME グリッドの間隔のみを変更します。
-rmax<実数> (0)-ntpr が 1 より大きい場合、rcoulomb の最大値を 0 より大きく設定する必要があります (rcoulomb のスケールアップはフーリエグリッドのスケーリングに影響します)。
-rmin<実数> (0)-ntpr が 1 より大きい場合、最小の rcoulomb は 0 より大きい必要があります。
-[no]scalevdw(有効)rvdw と rcoulomb のスケールを同時に適用
-ntpr<int> (0)評価する .tpr ファイルの数を指定します。-rmin と -rmax の値に応じて、異なる rcoulomb スケーリング係数を持つこの数のファイルを作成します。 1 未満の場合、テストする .tpr ファイルの数を自動的に選択します。
-steps<int> (1000)このベンチマーク実行で、指定されたステップ数分のタイミングを記録する
-resetstep<int> (1500)dlb がこのステップ数を完了するまで、タイミング測定を行う前に、ステップ数を調整します(このステップ数完了後にカウンターをリセットします)。
-nsteps<整数> (-1)もし非負の値であれば、この数だけ実際の実行でステップを実行します(
:ref:.tpr <tpr>` からのnstepsの値を上書きし、:ref:.cpt <cpt>` のステップを追加します)-[no]launch(無)最適化後、実際のシミュレーションを開始する
-[no]bench(はい)ベンチマークを実行するか、または入力ファイルのみを作成しますか?
-[no]check(はい)ベンチマークの実行前に、mdrunが並行して動作するかどうかを確認してください。
-gpu_id<文字列>使用可能な一意のGPUデバイスIDのリスト
-[no]append(はい)以前の出力ファイルに、チェックポイントからの再開時にシミュレーションのパート番号を追加するのではなく、追加する (起動時のみ)
-[no]cpnum(無)チェックポイントファイルを保持し、番号を付与する(起動時のみ)
-deffnm<文字列>起動時にデフォルトのファイル名を設定する