新しいおよび改善された機能

C++11コンパイラへの変更が必要

GROMACS では、C++11 および C99 コンパイラの両方が必要です。詳細については、インストールガイドを参照してください。

CUDA 5.0 およびその後のバージョンのみをサポートするように変更

Issue 1831

PME を使用して、rcoulomb > rvdw を許可

GROMACS では、以前から Coulomb PME + カットオフ LJ と rcoulomb > rvdw をサポートするカーネルが利用可能でしたが、これらは PME のロードバランシングを通じてのみ利用できました。今後は、mdp オプションを通じてこの設定を選択できるようになります。

ポータブルハードウェアローカリティ (hwloc) のオプションでのサポートを追加

CMakeによるサポートを追加し、hwlocを使用して|Gromacs|を検出およびビルドできるようにしました。これにより、|Gromacs|は利用可能なすべてのハードウェアを認識し、活用できるようになります。hwlocが利用できない場合は、|Gromacs|は他の検出ルーチンにフォールバックします。

シェルとVSiteで、通常のモードでの計算をサポート

`mdrun`における通常のモード解析と固有値および周波数の解析において、シェルと`vsites`を実装しました。通常のモード解析は、実際の原子のみに対して行われ、各解析ステップでシェルが最適化されます。

Issue 879

`tpr`ファイルに保存されている座標のプルグループ数を変更

ngroup パラメータを pull コオर्डिनेटパラメータに追加しました。これにより、tpr ファイルにも保存されます。これにより、pull ジオメトリが前方互換性を持つようになり、新しいジオメトリを使用する際に .tpr のバージョンを毎回変更する必要がなくなります。ユーザーが新しいジオメトリを試したいと考えているため、これは非常に便利です。

追加: 座標幾何における角度-軸のサポート

新しいジオメトリはドキュメントに記載されています。新しいジオメトリを追加したことで、readpull.cpp内のいくつかのチェックが再構成され、以前のロジックが少し複雑になりました。

プル座標幾何二面角(角度)を追加

新しいジオメトリの使い方については、ドキュメントに説明されています。

プル座標幾何角度を追加

ドキュメントに、新しいジオメトリに関する新しいセクションが追加されました。

pull-print-com1,2 mdp オプションを pull-print-com に置き換えました。

プル出力の順序と命名規則が変更されました。

追加: pull potential flat-bottom-high

新しいプル座標タイプ「flat-bottom-high」を追加しました。これは、基準値よりも高い平坦なポテンシャルと、それに続く調和的なポテンシャルを持つものです。

gmx grompp のプルグループのチェックを追加

プルグループの有効性をプル座標で確認する機能を追加しました。範囲外のプルグループインデックスを使用すると、無効なメモリへのアクセスが発生するのを防ぎます。

計算された電気生理学モジュールに、新しいスワッピング機能を追加

複数のイオンの種類と多原子イオン(例えば、少数の多原子イオン)に対して、イオン/水の位置の入れ替えをサポートするように機能が追加されました。これには、ユーザーが定義するイオンの種類数を使用することが含まれます。

また、.mdp ファイルのパラメータとして「bulk-offset」を追加しました。これにより、ユーザーはスワップ層をコンパートメントの中間平面からオフセットする値を指定できます。これは、例えば、膜タンパク質が少なくとも1つのコンパートメントに大きく広がっている場合に役立ちます。オフセットを使用しない場合、イオンはタンパク質の周囲で交換されるため、これは望ましい動作ではありません。オフセットを使用すると、パフォーマンスに影響が出ますが、.mdp ファイルのパラメータを使用する場合、そのような影響はありません。

ドキュメントとテストが改善されました。

DD の「インタラクションの欠如」チェックのロジックを修正

ドメイン分割アルゴリズムが特定の相互作用を検出することを目的としたコードが、いくつかのケースで無効になっていましたが、修正されました。

Issue 1882, Issue 1793

許可された力と速度を圧縮されたTNGに書き込む

もし、圧縮されていない座標出力がない場合、圧縮された座標出力で TNG ファイルに力をと速度を書き込みます。もし、TNG ファイルに圧縮されていない座標出力がある場合、力と速度はそこに書き込まれます。

共通の約数を活用して、一部のTNGデータ出力の頻度を設定し、ラムダとボックス形状が他のデータと同様に、少なくとも同じ頻度で出力されるようにする。

Issue 1863

ユーザーに、カップリングアルゴリズムが利用できない場合に、新しいメモを追加

mdrunは、圧力と/または温度の連動がオフになった場合に、ユーザーに説明的なメモを表示します。

有限エネルギーに対する mdrun のチェックを追加

合計の潜在エネルギーが有限であることを確認するチェックを追加しました。このチェックは非常に低コストで、ユーザーが混乱した制約やPMEエラーに遭遇する前に、不適切に設定されたシステムの問題を検出できます。ただし、このチェックはエネルギーが計算されるステップでのみ実行されるため、爆発的なシステムを検出できない場合があります。

gmx grompp で未接続の原子を検出する機能を追加

gmx grompp は、現在、同じ moleculetype 内の他の原子に潜在的な相互作用や制約で接続されていない原子について、メモを表示するようになりました。これは、多くの場合、ユーザーが誤った設定を行っていることを意味します。

Issue 1958

マルチシミュレーション間のシグナリングの改善

マルチシミュレーション(REMを含む)では、シミュレーション間でメッセージを送信する必要がある場合があります。たとえば、REMでは、シミュレーションの復元が正しく機能するために、完全な一貫性のあるチェックポイントファイルのセットを書き出す必要がありますが、通常のマルチシミュレーションは、独立した進行でシミュレーションを行い、より効率的に実行できます。同様に、「gmx_mpi mdrun -maxh -multi」は、REMのみで同期する必要があります。この同期機能は、ユーザーが選択したアルゴリズムがそれを必要とする場合にのみ行われるように実装が変更されました。

Issue 860, Issue 692, Issue 1857, Issue 1942

マルチシミュレーションの nsteps の動作が変更されました。

ユーザーが .mdp、.cpt またはコマンドラインから取得した、init_step と nsteps のいずれかの可能な非均一な分布を提供した場合、マルチシミュレーションの期待される動作は不明です。 以前は mdrun が実行回数を調整して、各実行で同じステップ数を実行するようにしていました。しかし、現在は非均一性を報告し、ユーザーが何をしているかを理解していると仮定して実行を続行します。

Issue 1857

.logファイルに記録される項目に、作業ディレクトリを追加

GROMACS をバッチスクリプトで実行する場合、コマンドラインでの相対パス(ファイル名)に使用されている作業ディレクトリを把握することが役立ちます。 これについては、他のヘッダー情報とともに記述されるようになりました。

チェックポイントの再起動および/または追加操作に関連する、脆弱な使用ケースを防止

すべての出力ファイル(チェックポイントファイルに指定されたファイル、つまり以前の実行で使用されたファイル)は、チェックポイントの再起動を行う前に存在する必要があります。したがって、「連続」再起動を行うことができなくなったワークフロー(例:`gmx mdrun -s production -cpi equilibration`を使用)は、代わりに`gmx grompp -t equilibration -o production`を使用する必要があります。

Issue 1777

OpenMP のコア数チェック後に表示される警告を削除

多くの場合、「gmx_mpi mdrun」は、OpenMP から返される値と、合計コア数を比較した際に警告を発していました。これは、不適切なスレッドアフィニティマスクの管理が原因ですが、メッセージの表現がユーザーにこの問題を理解させるのに役立たなかったため、削除されました。「gmx_mpi mdrun -pin on」を使用することで、このような場合にパフォーマンスが向上する可能性があります。

ハードウェア検出の準備段階で、オフラインコアを強制的に動作させようとする可能性があります。

ハードウェアの検出が、アイドル時にコアを停止するカーネルによって妨げられる可能性があります。|Gromacs|が使用される可能性のあるプラットフォームは現在確認されていませんが、近い将来にそのようなプラットフォームが登場する可能性があります。そのようなプラットフォームでは、物理的に存在するコアの数と、オンラインになっているコアの数が異なる場合、|Gromacs|がオンラインになっているコアを使用する方法を決定する前に、コアをオンラインにすることを試みます。現時点では、x86またはPowerPCプラットフォームにはこのコードは必要ありません。そのため、これらのプラットフォームでは実行されません。幸いなことに、このような可能性に関する混乱を招く警告を出す必要はなくなりました。

ユーザーが試すことができる新しい提案を追加(例:ハイパースレッディングを無効化した場合)

GROMACS は、1つのコアあたり複数のハードウェアスレッドが利用可能である場合に、特に優れたパフォーマンスを発揮する傾向があります(例:x86プラットフォームでハイパースレッディングが有効になっている場合)。現在、ログファイルには、そのような状況が存在する場合に、明示的に記録されます。