タグ付けされた質問 「molecular-dynamics」

4
現在利用可能なGPUは倍精度浮動小数点演算をサポートしていますか?
24個のIntel Xeon CPUを含むノードで構成されるUbuntu Linuxクラスターで分子動力学(MD)コードGROMACSを実行しました。私の特定の関心のある点は、浮動小数点演算の精度に多少敏感であることが判明したため、GROMACSは、倍精度の計算コストが高いにもかかわらず、単精度ではなく倍精度で実行する必要がありました。そのため、クラスターでは、GROMACSを倍精度でコンパイルしました。 CPUに対して相対的な高速化(「GPUアクセラレーション」)が行われる可能性があるため、GPUの購入を検討しています。ただし、倍精度演算を実行できるGPUが必要です。そのようなハードウェアが市販されているかどうか知っていますか?GROMACSメーリングリストの最近の投稿は、倍精度のGPUは市販されていないことを示唆しています: ハードウェアはそれをサポートしていません[倍精度演算]まだ知らない。 このウィキペディアのページは、倍精度GPUは非効率的である可能性があるため、一般的でないことを示唆しているようです。 Nvidia GPUでの浮動小数点の実装は、ほとんどがIEEEに準拠しています。ただし、これはすべてのベンダーに当てはまるわけではありません。これは、いくつかの科学的応用にとって重要であると考えられている正確さに影響を及ぼします。CPUでは64ビット浮動小数点値(倍精度浮動小数点数)が一般的に使用可能ですが、これらはGPUでは普遍的にサポートされていません。一部のGPUアーキテクチャはIEEE準拠を犠牲にし、他のGPUアーキテクチャは倍精度を完全に欠いています。GPUで倍精度浮動小数点値をエミュレートする努力がありました。ただし、速度のトレードオフは、そもそもGPUに計算をオフロードする利点を無効にします。 このNVIDIA Teslaページは、チャートの「ピークの倍精度浮動小数点パフォーマンス」を参照する際に、実際には、GPUで倍精度計算を実行できることを示唆しているようです(計算コストは​​高くなりますが)。 だから、私は何を信じるべきですか?この問題の経験はありますか?

3

3
粒子分解およびドメイン分解の並列化アルゴリズムの長所と短所は何ですか?
GromacsやDL_POLYなどのいくつかのソフトウェアパッケージを使用して、分子動力学(MD)シミュレーションを実行しています。 Gromacsは、粒子分解アルゴリズムとドメイン分解アルゴリズムの両方をサポートするようになりました。デフォルトでは、Gromacsシミュレーションはドメイン分解を使用しますが、長年、最近まで、粒子分解はGromacsで実装された唯一の方法でした。Gromacsの論文の1つ(DOI 10.1002 / jcc.20291)で、著者は粒子分解の最初の選択の理由を示しています。 「初期の設計決定は、プロセッサに作業を分散するためにドメイン分解ではなく粒子分解を使用する選択でした。後者の場合、空間ドメインはプロセッサに割り当てられます。ドメイン分解は、線形システムのサイズが相互作用の範囲を大幅に超える場合にのみ適切な選択です(分子動力学ではほとんどありません)。粒子分解では、各プロセッサが力と座標/速度の更新を計算しますプロセッサに均等に分散された事前計算されたネイバーリストを使用して、割り当てられたパーティクルの一部に対して。F私はjF私jF_{ij}粒子 と間のペア相互作用から生じるは、粒子と 両方の速度更新に必要です。私私ijjj私私ijjj、一度だけ計算され、他のプロセッサに伝達されます。すべてのプロセッサは、ストレージを必要な座標に制限するのではなく、システムの完全な座標セットをローカルメモリに保持します。これはより単純で通信のオーバーヘッドを節約しますが、メモリクレームは通常、何百万ものパーティクルであっても制限要因ではありません。一方、近隣リストは、最大1000倍の数のパーティクルを含むことができ、プロセッサに分散されます。通信は本質的に、座標の送信とプロセッサリングの周りのタイムステップごとに1回の強制に制限されます。これらの選択肢は、長期にわたって堅牢であり、最新のプロセッサクラスタに簡単に適用できることが実証されています。」 「ドメイン分解は、線形システムのサイズが相互作用の範囲を大幅に超える場合にのみより良い選択です。これは分子動力学ではめったにありません」という文の「線形システムのサイズ」とはどういう意味ですか?上記の段落から、粒子の分解には、ドメインの境界を越えて移動する粒子を処理する必要がないという利点があります。むしろ、システム構成全体を保存するのに十分なメモリが各プロセッサに必要です。したがって、ドメイン分解は非常に好ましくないように見えますが、粒子分解は非常に好ましいように見えます。 これは非常に複雑な質問(そしておそらく多くの本の主題)であると確信していますが、基本的に、粒子の分解が非常に好ましいと思われる場合、ドメイン分解を使用する必要があるのはなぜですか? システムのサイズが非常に大きい場合(各プロセッサに構成全体を保存するのが困難または不可能になる場合)、ドメインの分解は適切ですか?上記の引用された段落に基づいて、ドメイン分解が最近、Gromacsのデフォルトの並列化アルゴリズムである理由がわかりません。 DL_POLY(バージョン4)もドメイン分解を使用しているようです。バージョン4のマニュアルから: 「この方法での構成データの分割は、シミュレーションセル内の原子の位置に基づいています。このようなシステムデータの幾何学的割り当ては、DDアルゴリズムの特徴です。この戦略が効率的に機能するために、システムは合理的に均一な密度を持たなければならないので、各プロセッサには原子データのほぼ等しい部分が割り当てられます(可能な限り)。この方法は概念的には簡単ですが、プログラミングは難しく、効率が最も高い大規模なシミュレーションに特に適しています。 ... DD戦略の場合、SHAKE(RATTLE)アルゴリズムはDL_POLY ClassicのReplicated Dataメソッドよりも単純です。この場合、原子位置のグローバルな更新(マージとスプライシング)が必要です。 これにより、実装が困難になる可能性がありますが、より効率的になる可能性があるため、ドメイン分解が良好であるかのように聞こえます。 一方、以前のバージョン(DL_POLY Classic)は複製されたデータの並列化を使用していました。これは、パーティクル分解の別名と思われます。そのバージョンのマニュアルから: レプリケートデータ(RD)戦略は、MDで並列化を実現するいくつかの方法の1つです。その名前は、並列コンピューターの各ノード上の構成データの複製に由来します(すなわち、原子座標、速度 定義する配列、およびを強制しますすべてr私r私\textbf{r}_iv私v私\textbf{v}_if私f私\textbf{f}_iNNNシミュレートされたシステム内の原子は、すべての処理ノードで再現されます)。この戦略では、力の計算と運動方程式の統合のほとんどは、ノード間で簡単かつ均等に共有でき、大部分は各ノードで独立して処理できます。この方法は、プログラムが比較的簡単であり、かなり効率的です。さらに、単一のプロセッサで非常に簡単に実行できるように「折りたたみ」できます。ただし、この戦略はメモリを大量に消費し、通信のオーバーヘッドが高くなる可能性がありますが、全体的に見て、幅広いアプリケーションで成功することが実証されています。 この段落は一般に、この質問の最初の段落と一致しているように見えますが、複製されたデータ/粒子の分解には「高い通信オーバーヘッド」があると書かれています。Gromacsの論文のパラグラフは、その逆を言っているようです。つまり、粒子分解は、ドメイン分解よりも通信のオーバーヘッドが少ないため、好ましいと言えます。 何か考えはありますか?

1
MDシミュレーションの複雑さ
私は分子動力学(MD)シミュレーションが初めてです。シミュレーション時間に関する分子動力学シミュレーションの複雑さは何ですか?言い換えると、シミュレーション時間を10ナノ秒から20ナノ秒に増やしたい場合、ランタイムの増加に関して何が期待できますか?

1
後者がより正確である場合、leapfrog統合はシンプレクティックであり、RK4はそうではないのはなぜですか?
理論的にエネルギーを節約する必要のあるシステムでは、最も正確なシミュレーションがエネルギーを節約します(正確な位置、速度などを提供します)。RK4はleapfrogよりも正確ですが、leapfrogはエネルギーを節約しますが、RK4はそうではありません。どうしてこれなの?

1
クラシックMDからab initio MDを開始する方法
私はテスト目的で水の分子動力学シミュレーションを実行しています。古典的なMDを実行している人に尋ねると、ボックスはかなり小さく、DFTの人に尋ねると比較的大きくなります。周期的な境界条件で58の水分子があります。 CPU時間を節約するために、ab initio MDを実行する前に、古典的な力場でセルを最適化しています。私はシステムを古典的に300Kで1 ns平衡化し、最後のスナップショットを取得してab initio MDの入力として使用します。私のab initio MDは通常のDFTベースのBorn-Oppenheimer MDで、平面波基底セットとPAW(疑似)ポテンシャル(VASPがコード)を持っています。古典的シミュレーションとab initioシミュレーションの両方で、速度再調整サーモスタットを使用して温度を300Kで一定に保っています。 私は、クラシックとab initioの間の移行を行う2つの異なる方法を調査しています。 古典的な軌道から初期速度と位置を取得し、それらをab initioシミュレーションの初期構成としてインポートします 古典的な位置を維持しながらシステムをゼロ温度に凍結し、それをDFTコードにインポートして、すぐに(現時点では0.5 psで実行しています)300Kまで加熱します。 特に、開始時の構成が上記の温度トリック(初期速度が異なる)を除いてまったく同じ(同じ初期位置)であることを考えると、両方の戦略が短い(たとえば10 ps)平衡期間後に同じ平均エネルギーにつながることを期待していました。これはそうではありません。以下の図は、システムが凍結されてから急速に加熱されるシミュレーションが、他のエネルギー領域よりも約1 eV低いエネルギー領域を見つけ、速度が古典的なMDからインポートされたことを示しています。 私の質問は: これが期待されるかどうか; クラシックからab initio MDへの移行を最適化する既知の成功した戦略はありますか。 そして、あなたはその問題に関する適切な文学に私を向けることができますか? 編集: 私はさらにいくつかのテストを実行しており、現時点でデータが限られているため、これはシステム固有の問題である可能性があります。同じサイズのボックス内で水ではなくメタノールを使用したテストでは、2つの異なる初期速度スキームが同じ平均エネルギーにすぐに収束することがわかりました。ただし、メタノールの場合、古典的な構成は量子構成に非常に近くなりました。つまり、t = 0のエネルギーは収束後の平均エネルギーに非常に近くなりました。水は悪名高い難しいシステムであるため、この問題は多かれ少なかれ水特有のものです。回答が追加されていない場合、すべてのテストが終了したら、結果に基づいて回答を投稿してみます。

2
遺伝的アルゴリズムvs共役勾配法
シミュレーションの結果が実験構造にできる限り近づくように、分子フレームワークのいくつかの力場パラメータを最適化しようとしています。 以前は、本質的にランダムにパラメーター空間をサンプリングし、最適に機能する組み合わせを選択し、変異パラメーターのセットを作成し、目的の関数に最適なパラメーターが得られるまでこのプロセスを繰り返す遺伝的アルゴリズムを作成しました。また、アルゴリズム自体のいくつかの最適化も実行します。ここで、変異した値の分布は、より高速な収束を優先するように最適化されます。 私のアドバイザーは遺伝的アルゴリズムについて聞いたことがなく、彼が推奨する方法、つまり共役勾配法とシンプレックスアルゴリズムについて聞いたことがありません。 私の状況では、目的関数は実験的な場所からのすべての原子の偏差の関数です(つまり、構造最適化です)。システムは4-10K原子です。CGMやシンプレックスアルゴリズムの学習に時間を費やす価値はありますか?3つのうち、この状況に最適なのはどれですか。

2
水蒸気の分子動力学シミュレーション?
私は水蒸気でMDをしようとしています。私が知っているように、SPC、SPC / E、TIP3Pなどの液体水にはいくつかの水モデルが存在しますが、それらは水の蒸気状態にも適用されますか?そして、液体と蒸気水のシミュレーションの違いは何ですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.