検証¶
同様に、科学的な目的または商業的な目的で使用されるコードであっても、|Gromacs|によって生成される結果は不正確である可能性があります。|Gromacs|によって生成される出力の正確性について、当社は一切の保証を負いません。ただし、広範なテストカバレッジと大規模なユーザーベースにより、|Gromacs|によって生成される結果は非常に信頼性が高いです。しかし、新しいコードや機能は、確立されたコードの機能と比較して、テストが十分ではありません。そのため、バグが発生するリスクが高くなり、ユーザーはこれを認識しておく必要があります。このような機能は、"experimental"(実験的)と"validation pending"(検証待ち)という2つの異なるタグでマークされます。 :ref:`gmx mdrun`は、これらの機能が使用されている場合に、ログファイルと標準出力でユーザーに通知します。
注意: |Gromacs|開発者の責任は、公式リリースの一部として配布されている未変更の|Gromacs|コードの正確性のみであり、修正版、外部パッケージ、またはプラグインの正確性ではありません。例えば、QM/MMシミュレーションがあります。もし、QMパッケージに問題があるために結果が正しくない場合、それは|Gromacs|開発者の責任ではありません。この場合、|Gromacs|開発者が責任を負うのは、QM/MMインターフェースの正確性です(実際には、QM/MMインターフェースのみをカバーするテストも存在します)。
実験的な機能¶
「実験的」とラベル付けされた機能は十分なテストを受けていません。このような機能は、本番環境でのシミュレーションには適していません。私たちは、このような機能のコードをできる限り少なくするように努めています。このような機能は、主に開発プロセスを簡素化するために、主要なコードベースに含めています。実験的な機能は、常に環境変数または cmake の設定オプションを介して有効にする必要があります。ユーザーはこれらの機能を使用し、特に問題が発生した場合に、フィードバックを提供することが推奨されます。
現在、実験段階にある機能は以下のとおりです。
CUDAグラフコードは、``GMX_CUDA_GRAPH``環境変数によって有効化されます。
NVSHMEM 通信、ビルド時に
-DGMX_NVSHMEM=ONCMake 変数で有効化OneAPIグラフサポート、ビルド時に
-DGMX_SYCL_ENABLE_GRAPHS=ONCMake変数で有効化複数のGPUを使用した並行PME(Paralleled Matrix Eigenvalue Decomposition)で、HIP GPUバックエンドを使用してAMD GPUをターゲットとし、ビルド時に
-DGMX_GPU=HIPおよび-DGMX_USE_HEFFTE=ONCMake変数を有効にする。直接的なHaloとの通信、これは
GMX_FILLERS_IN_LOCAL_STATE環境変数を介して行われます。NBNxM 1x1 非結合型カーネル、
GMX_NBNXN_PLAINC_1X1環境変数によって有効化H5MD 軌跡出力:
mdrunで軌跡ファイル出力のタイプとしてh5mdを選択することで有効化されます。wave32 (RDNA) デバイスで HIP を使用して wave64 実行を有効にする場合、コンパイル時に
-mwavefrontsize64を追加のコンパイルフラグとして渡します。VkFFT を使用して 3D の高速フーリエ変換(AMD および Apple 以外のプラットフォームで)を評価し、ビルド時に
-DGMX_GPU_FFT_LIBRARY=vkFFTCMake 変数を使用して有効にします。oneMathによる3D高速フーリエ変換(任意のプラットフォームで実行可能)のサポート。ビルド時に
-DGMX_GPU_FFT_LIBRARY=oneMathCMake変数を使用して有効化します。3D の高速フーリエ変換を評価するための、2回バッチ化された FFT ライブラリのサポート。ビルド時に
-DGMX_GPU_FFT_LIBRARY=BBFFTCMake 変数を使用して有効化します。
検証が保留中の機能¶
理想的には、|Gromacs|のすべての機能のすべての組み合わせ、およびすべての可能なCPUアーキテクチャとGPUバックエンドをカバーする検証テストスイートを用意したい。しかし、現時点ではそのようなものは存在しませんが、検証システムを収集するための取り組みを行っています。それでも、機能とオプションの組み合わせの爆発的な増加、およびすべてのサポートされているハードウェアを網羅することは困難です。新しい機能またはアクセラレーションバックエンドが、当社の内部テストおよび検証を成功裏に通過した場合、ほとんどの場合、|Gromacs|のリリースには「検証待ち」というカテゴリに分類されます。ユーザーにとっては、この機能が正しい結果を返すことを期待していますが、特定の機能の組み合わせまたはバックエンドによっては、誤った結果が生じる可能性があります。このような機能は、デフォルトでは有効になりません。ユーザーは、`:ref:`gmx mdrun`コマンドラインオプションまたは環境変数を、場合によっては``mdp``オプションを明示的に設定する必要があります。機能が1〜2年かけて完全に検証されることを期待しています。検証プロセスを支援するために、検証待ちの機能のテストをお勧めします。結果を注意深く確認し、|Gromacs|の`user forum <http://forums.gromacs.org/>`または`GitLab issues <https://gitlab.com/gromacs/gromacs/-/issues>`で問題が発生した場合は、報告してください。
現在、検証待ちの状態にある機能は以下のとおりです。
モジュール式シミュレーターで、Velocity Verlet と異なる積分器を使用
「Colvarsインターフェースは、
colvars-activeMDPオプションによって有効化されます。」PLUMEDインターフェースは、gmx mdrun の
-plumedオプションによって有効化されます。ニューラルネットワーク潜在インターフェースは、
nnpot-active``mdp``オプションを使用してアクティブ化され、LibTorchで構成されます。AMDおよびIntel GPUプラットフォーム以外のGPU向け、``GMX_GPU``の``cmake``での``SYCL``オプションの選択により有効化される、SYCL GPUバックエンド。
HIP GPUバックエンドは、AMD GPUをターゲットとし、``cmake``で``GMX_GPU``に``HIP``オプションを選択することで有効化されます。
ファストマルチポール法インターフェースは、ビルド時に
-DGMX_USE_EXT_FMMCMake 変数によって有効化されます。AMBER LEaP に対応したジヘドラルの再配置、grompp で実行され、
_FF_AMBER_LEAP_ATOM_REORDERINGプリプロセッサ定義で有効化非相互作用エネルギー計算をGPUで実行する(
-nbfe gpumdrunオプションを使用)
機能のライフサイクル段階¶
開発/実験版: 不完全、開発中、または十分にテストされていない可能性のある新しい機能。
リスク:非常に高い。バグ、API、または動作が変更される可能性があり、機能が予告なく削除される可能性があります。
推奨される使用方法: 開発環境でのみ使用してください。本番環境での使用は推奨されません。
検証待ち: コードが完成し、初期テストに合格したが、科学的なケース、ハードウェア、並列化オプションのすべての組み合わせで検証されていない機能。
リスク:中程度。この機能は正常に動作することが期待されますが、特定の、テストされていないシナリオにおいては、誤った結果が生じる可能性があります。
推奨される使用方法: 慎重にご使用ください。ユーザーは、結果を注意深く確認し、問題が発生した場合は報告することで、検証をテストし、支援することを推奨します。
安定: 機能のデフォルト状態であり、検証済みで、本番環境でのシミュレーションに適していると見なされます。
リスク:低(標準のGROMACS免責事項の範囲内)。
推奨される使用方法: すべてのユーザー向けに推奨。
レガシー: 以前から存在する機能であり、最近のリリースでは十分に利用またはテストされておらず、またはより新しい代替機能で置き換えられている。
リスク:低い~中程度(正確性のため)、ただしアップデートはされず、他の代替手段よりもパフォーマンスや柔軟性が低い可能性があります。
推奨される使用方法: 新しいプロジェクトには推奨されません。ユーザーは、該当する場合は推奨される最新の代替手段に移行する必要があります。
非推奨: 機能が推奨されなくなり、将来の主要なリリースで削除される予定であることを示す、正式な、EOL(End of Life)に関する警告。
リスク:低~中程度(正確性のため)、高い(将来性/継続性のため)。バグ修正やメンテナンスは行われません。
推奨される使用方法: 使用しないでください。
削除: この機能のコードは、GROMACSのコードベースから完全に削除されましたが、ドキュメントには、過去の機能として参照される可能性があります。
リスク: N/A
推奨される使用方法: 必要な場合は、まだその機能が含まれている古いバージョンを使用してください。