GROMACS 2024.4 リリースノート¶
このバージョンは2024年10月31日にリリースされました。これらのリリースノートは、|Gromacs|の2024.3バージョン以降に変更された内容を記録し、既知の問題を修正するために作成されています。また、2023.5バージョンおよびそれ以前のすべての修正も含まれており、詳細は:ref:`release-notes`で確認できます。
mdrun が誤った動作をする問題を修正¶
GPUで、カットオフ距離付近の非結合相互作用が欠落していた問題を修正¶
デュアルペアリスト構成で用いられたGPUによるロリングプルーニングにおいて、リスト部分の計算が誤っていたため、初期プルーニング後にいくつかのparlistエントリが更新されず、結果として少数のペアインタラクションが失われた。ただし、ペアリストの寿命「nstlist」が非常に大きい場合、これらのインタラクションはカットオフに近いため、エラーは小さくなる。
影響を受けるシミュレーション:GROMACS 2018リリース以降の、デュアルペアリストを有効にしたすべてのGPUアクセラレーション実行。これは、デフォルトのVerletバッファで自動的に有効になりますが、Verletバッファを手動で設定した場合(または GMX_DISABLE_DYNAMICPRUNING 環境変数が設定されている場合)には無効になります。
影響:当社の分析により、デフォルトのシミュレーション設定で、相互作用の欠如によって引き起こされるエラーは、ほとんどの原子シミュレーションにおいて、力やエネルギーの保存に測定可能な影響を与えないことがわかります。ただし、「nstlist」を手動で増やすことで、外側のペアリストの寿命が増加し、欠落した相互作用の数が増加しますが、実用的な「nstlist」の値を使用した場合、その影響は依然として軽微です。真空、ガス、または極めて大きな「nstlist」の値を持つシステムでは、測定可能な影響が生じる可能性があります。当社のテストでは、システムがクラッシュする以外に、他の異常は見つけられませんでした。したがって、検出されない誤った結果が生じる可能性は低いです。
外部ハミルトニアンの違いに、擾乱された質量の影響を追加する¶
「外のハミルトニアンの違いにおける摂動された質量の影響に関する記述が欠けていました。これにより、「gmx bar」は摂動された質量の影響を無視していました。ただし、摂動された質量は dH/dlambda に影響を与えていました。」
T-カップリンググループよりも多くのVCMによる不正なメモリアクセスを修正¶
中心座標の移動除去グループの数が温度結合グループよりも多い場合、mdrunが不正なメモリアクセスによってクラッシュすることがありました。このバグはシミュレーション結果に影響を与えませんでした。
VCMグループに属さない一部の要素が原因でクラッシュが発生する問題を修正¶
一部の原子が中心質量運動除去グループの一部でなかった場合に、初期化されていないメモリが読み取られました。多くの場合、このメモリにはゼロの値が入っており、シミュレーションは正常に動作していました。しかし、このメモリにゼロ以外の値が入っている場合、シミュレーションは数ステップでクラッシュしていました。
粗粒結合ポテンシャルのパラメータ処理の修正¶
フリーエネルギー摂動は、粗粒フォースフィールドで時々使用される、制約角度、制約二面角、および組み合わせのねじれ-トルクポテンシャルには、これまでサポートされていませんでした。これにより、「gmx grompp」で仮説的なB状態パラメータが誤って処理され、その後、.tprファイルへの書き込み/読み込み時に誤ってシリアル化されるという問題が発生しました。
これは通常、問題なく動作していました。特に、このような機能的な形式を使用している場合でも。しかし、他のインタラクションが変更された場合、誤ったパラメータの処理により、誤ったパラメータを使用したインタラクションが意図的に変更されているように見えました。これは、アルケミカル・エンベディングシステムを用いたワークフローを使用した場合によく発生しました。
現在、仮のB状態パラメータが正しく処理されるため、FEPベースのワークフローが成功します。ただし、上記で言及した相互作用の種類に対する干渉は、まだサポートされていません。
常に Colvars の出力ファイルを作業ディレクトリに書き出す問題を修正しました。¶
Colvarsの出力ファイルは、edrファイルと同じフォルダに保存されるようになりました。
-update gpu を使用する際に、三角形制約の使用を禁止する。¶
三角形の制約がある場合は、GPUでのアップデートの使用を防止します。
gmx_mpi mdrun を GPU と個別の PME ランクを使用する場合に、フリーズする可能性があります。¶
タスクの割り当てにおける論理的なエラー(「-nb gpu -pme cpu」オプションを使用した場合)と、個別のPMEランクの設定により、デフォルトの「-ddorder interleave」オプションが停止していました。現在は正常に動作します。
動的な負荷分散は、特殊部隊が存在する場合に効果的ではありませんでした。¶
DLBのタイミングには、特殊部隊の計算(例:コードの引き出しと回転)が含まれていました。これらの計算には通信が必要であるため、不均衡が測定されない可能性がありました。現在、特殊部隊の計算はタイミングから除外されています。
修正:非結合型および OpenMP を使用した、誤ったメモリへのアクセス¶
古い、無効なインデックスは、OpenMPスレッドでの摂動された非結合相互作用に対して、強制バッファのサイズを削減するために使用できます。これにより、誤った結果やクラッシュが発生することはありません。ただし、パフォーマンスが向上する可能性があります。
gmx ツールに関する修正¶
gromppが、自由エネルギーの解離により誤ったB状態の電荷を検出し修正しました。¶
`:mdp:`オプション`couple-moltype`を使用した場合、`gmx grompp`はA状態の電荷をチェックするのではなく、B状態の電荷をチェックします。これにより、システムにB状態に非ゼロのネット電荷がある場合に、誤った警告または警告が表示されなくなります。
gromppとmdrunは、大きな質量差で終了することがあります。¶
アトマの質量が327倍以上異なると、「gmx grompp」と「gmx mdrun」の両方が、無限のエネルギードリフトの推定に関するアサーションエラーで終了することがあります。
Colvarsの値で発生するダンプクラッシュを修正¶
gmx dump コマンドが、バイナリの Colvars 状態ファイルを出力しようとした際にクラッシュする問題を修正。
要素とアトムの番号を事前処理中に正しく算出する修正¶
「gmx editconf」、「gmx pdb2gmx」および「gmx grompp」の事前処理において、BR や CL のような2文字の原子名が正しく処理されなかったため、誤った元素および原子番号が割り当てられるという問題が発生しました。これにより、出力ファイルに誤った元素名が表示される可能性があり、QMMM シミュレーションの結果に誤りが生じる可能性があります。
NVSHMEMを有効にした場合のPME-PPによる強制転送で発生するハング(停止)を修正¶
PME-PP による NVSHMEM 実行中の強制転送におけるハングが発生する問題を修正しました。この問題は、特定の条件下でのみ発生します。また、NVSHMEM を有効にした PME-PP による強制転送は、電荷の擾乱をサポートしていません。
移植性に影響を与える修正¶
PyMbar バージョン 4 での物理検証の修正¶
Pymbarのバージョン4は、バージョン3とは異なるAPIを持っています。現在、バージョン3のいずれかを使用できるようになり、内部でAPIの違いを処理します。
VkFFT 1.3.5との互換性を修正¶
GROMACS のシャットダウン時に、外部の VkFFT 1.3.5 を使用した場合に発生するクラッシュを修正。
その他の項目¶
CMake 3.30 以降での FetchContent の警告を回避する方法¶
CMake 3.30 で GROMACS が FetchContent を使用することについて警告が開始されたため、今後はそのような新しいバージョンには、古いポリシーを使用するように指示します。
GMX_USE_COLVARS=NONE の場合に発生する、さまざまなクラッシュを修正¶
Colvars MDModuleは、Colvarsライブラリがコンパイルされていない場合に、ColvarsカスタムMDP変数を定義しないため、GROMACS-Colvarsバージョンで生成されたtprファイルをツールが正しく読み取ることができなくなります。また、Colvarsモジュールが有効になっている状態で|Gromacs|がコンパイルされていない場合に、tprファイルの作成を防止します。Colvarsシミュレーションが開始された状態で|Gromacs|がコンパイルされていない場合、適切に終了します。
一部のKubernetesコンテナでcgroupsの読み取りを修正¶
現代の Kubernetes/Docker のバージョンでは、コンテナに /etc/mtab をマウントするようにはなっておらず、cgroup を検出できない場合、cgroup を通じて設定された CPU の制限を検出できませんでした。/proc/mounts を読み取ることで修正されました。これにより、(一部の) コンテナでのみパフォーマンスに影響します。
Colvarsライブラリで収集された修正¶
Colvarsライブラリでは、最近および長年の間、いくつかのバグが修正されました。以下に、修正されたバグに対応するリンクを示します。これらのリンクは、`Colvarsリポジトリ <https://github.com/Colvars/colvars>`_にある問題またはプルリクエストに対応しています。
std::filesystem`から現在の作業ディレクトリを取得する際に、定義されていない動作を修正しました。これにより、複数のウォーカーによるメタダイナミクス実行(`Colvars PR 728)に影響を与える可能性のある問題を解決しました。
「distanceDir」タイプの「Colvars」の協調変数の勾配とメトリック関数を修正しました(Colvars PR 724 <https://github.com/Colvars/colvars/pull/724>)。
回転座標系における
orientation型の集団変数(Colvars PR 715 <https://github.com/Colvars/colvars/pull/715>)の定義を修正しました。実装しました:変数(ベクトル値を持つ)に対する、回転フレームで定義された力の適用を考慮した機能(Colvars PR 713 <https://github.com/Colvars/colvars/pull/713>)。
特定のメタダイナミクスシミュレーションにおいて、補間グリッドを使用せずに発生するクラッシュを修正しました(Colvars PR 706)。
複数のバイアスを定義し、タスクごとに複数のスレッドを実行する場合における、より一貫した動作 (Colvars PR 694)。
実行時のヒストグラム用の誤った出力ファイルの作成を防ぎました(Colvars PR 675)。
WindowsでのNVCCフラグの検証を有効にする¶
GROMACSをWindowsでCUDAサポート付きでビルドする場合、互換性のある計算アーキテクチャのテストチェックが無効化されます。そのため、GROMACSはすべてのアーキテクチャでコンパイルを試み、CUDAが古いアーキテクチャと互換性がなくなると、コンパイルが失敗する可能性があります。