GROMACS 2016.1 リリースノート

このバージョンは2016年10月28日にリリースされました。これらのリリースノートは、初期バージョン2016以降に|Gromacs|で発生していた既知の問題を修正するために行われた変更を文書化しています。また、バージョン5.1.4で実施されたすべての修正も含まれています。

スレッドとDDとの連携において、距離制約が機能するようにしました。

NMR距離制約は、スレッド+ドメインローカルのilistフォース原子のインデックスに基づいてインデックス化された距離の合計に使用する複数のバッファを使用します。これにより、OpenMPおよび/またはドメイン分割では誤った結果が生じます。制約にタイプインデックスを使用し、ペアにはドメインローカル(スレッドローカルではない)のインデックスを使用することで、これらの問題を解決できます。現在、残っている制限は2つだけです。

  • 時間平均による制約はDDでは機能しません。

  • 同じシステム内の複数の分子のコピーをアンサンブル平均なしでDDで使用すると、正常に動作しません。

注意: これらの修正は、5.1.x のどのリリースにも含まれていません。

Issue 1117 Issue 1989 Issue 2029

Ewald表面+3D修正を修正

Ewald表面と3D修正力は、最後の原子(除外された原子を除く)までのみ適用されました。水がシステムの終わりに適用された場合、最後のHのみが修正されませんでした。イオンがシステムの終わりに適用された場合、すべてのイオンが修正されませんでした。さらに、Verlet法とドメイン分割を使用した場合、修正力は適用されませんでした。

Issue 2040

壁テーブルファイルの開く問題を修正

Issue 2033

gmx insert-molecules のバグを修正しました。

-ip オプションを使用し、すべての試行が失敗した場合、メモリエラーが発生した際に、`rpos[XX][mol]`を参照する際に、分子が誤って 0/0/0 に配置されました。

再現性のあるVirialを作成しました

OpenMPのreductionを使用して、スレッド間で virialの寄与を削減します。この操作は、スレッド間の順序が定義されていないため、異なる丸めが発生し、実行結果が再現できなくなる(ただし、結果は完全に正しい)。現在は、スレッドローカルバッファを使用しています。また、小規模な計算(例:シフト演算)に対するOpenMPの並列化は削除しました。

FFTW 3.3.5 をサポートするように更新

FFTW の自動ダウンロードが、FFTW 3.3.5 を取得し、正しくビルドできるようになりました。GMX_SIMD が VSX に設定されている場合(例:Power8 用)、--enable-vsx オプションも使用されます。また、GMX_SIMD が AVX のいずれかのフレーバーの場合(現在非 512 アーキテクチャでも安全、KNL で動作し、将来の AVX512 アーキテクチャにも役立つと想定されます)には、--enable-avx512 オプションも使用されます。

自動負荷分散が、パフォーマンスを低下させる場合に自動的に無効になるように設定できます。

特定の条件下、特に(共有)GPUを使用する場合、DLBによってパフォーマンスが低下することがあります。現在、DLBを有効にする前に、1ステップあたりのサイクル数を測定しています。DLBを有効にしたときの1ステップあたりのサイクル数の平均が、有効にした状態でないときの平均よりも高くなった場合、DLBを無効にします。その後、再度DLBを無効にした状態でサイクル数を測定します。有効にした状態でない場合でもサイクル数が低い場合は、残りの実行時間中はDLBを無効にしたままにします。そうでない場合は、以前と同様にDLBを再度有効にすることができます。この手順により、DLBによってパフォーマンスが低下することはありません。

GPUを使用した動的な負荷分散におけるタイミングの精度を向上

OpenCLでは、GPUでのローカル非結合計算の完了時間を動的な負荷分散において無視していました。この変更により、OpenCLはCUDAと同じコードパスを使用できるようになります。

内部のヒューリスティックパラメータが、CUDAとOpenCLの両方で非常に小さすぎたことが修正されました。

テスラのP100 GPUのカーネル起動範囲を修正

これにより、sm_60 GPUにおける初期のカーネルチューニングパラメータの推定値を修正し、結果としてパフォーマンスが向上します。

SETTLE警告で実行が終了した場合のロジック処理の改善

コードは、環境変数 GMX_MAXCONSTRWARN が -1 に設定されている場合、警告の最大数が設定されていないことを認識します。

Issue 2058

gmx wham で pullx ファイルの読み込みに関するバグを修正しました。

最近、`pullx`ファイルの列の順序が変更されたため、`gmx wham`が、プルグループのCOMが書き込まれている場合に、`pullx.xvg`から反応座標を自動的に選択できなくなりました。`gmx wham`は、さまざまなプルオプションとジオメトリでテストされました。

gmx wham の出力バグを修正

スレッドとMPIとの間のロック状態の死結を修正

スレッドとMPIを同時に使用する場合、mdrunはスレッドを固定しようとすると、ロック状態になる可能性があります。

Issue 2025

Gromppでのエラー報告をより使いやすくしました

このツールは、現在、ユーザー入力ファイル内のファイルと行を常に報告し、その結果、後続の解析が継続できないような条件が発生する箇所を示します。

VMX の SIMD 指向修正

スクリプト xplor2gmx.pl を GMXDATA と連携するように修正しました。

mdrun のみでビルドする場合のデフォルトの nice レベルを修正

現在、mdrun のみを使用するビルドでは、通常のビルドと同様に、nice レベルがデフォルトで 0 に設定されます。

修正:math-test の誤検出を修正

浮動小数点除算の精度によっては、テスト関数の入力が1ulp(1桁の誤差)過剰または過少になる可能性があります。もし過剰であれば、テスト関数の結果は4ulp以内に収まらず、テストは失敗します。

改善されたドキュメント

GPUでの実行時のオーバーヘッドを削減するためのアプローチが、現在ドキュメント化されています。

現在、md.logファイルに記録されている利用可能なウォールサイクルカウンターとサブカウンターが、ユーザーガイドにリストされ、説明されています。また、サブカウンターのレポートを有効にする方法も記載されています。

いくつかのインストールガイドのセクションが改善されました。具体的には、OpenCL、mdrunのみを使用する、および「make check」に関するセクションが含まれます。また、「手軽な」クラスタインストールに関するセクションが追加されました。

OpenCLのエラー文字列が、以前は曖昧なエラーコードの代わりに記録されるようになりました。

GMX_USE_TNG=off を使用してビルドが正常に完了

可変精度での.groファイルの書き込み機能を削除

.gro ファイルの書き込み時に使用される精度は、それぞれ x、v、および box に対して、3、4、および 5 桁の小数点まで固定され、他のソフトウェアとの互換性を確保します。 変数精度での読み込みは引き続きサポートされています。

Issue 2037

修正:BG/Qプラットフォームのファイルとインストールガイド

プラットフォームファイル名を、一般的な慣例とインストールガイドに準拠するように変更しました。

フリーエネルギーシミュレーションに必要なメモリを削減

ペアリストと、短距離パラメータが変更された原子とのペアリングを行う際に、必要なメモリ量が減少しました。

Issue 2014