私はいくつかの粒子の粒子のMonte-Carlo simulationをやっています。私のコードにいくつかのボトルネックがありますが、主なものは私が試行したいくつかの中で、私はすべてのパーティクルプロパティを更新する必要があるということです。コードはC++で書かれており、現在はいくつかのループがあります。
1.すべてのパーティクルの古いプロパティを保存して新しいプロパティを更新するループ。
2.相互作用の2Dループ。
3.別の2次元相互作用ループ(最初のものと組み合わせることはできません)。
4.保存するループは、ステップを拒否するステップ/ループを受け入れます。私のシミュレーションに十分なアルゴリズムを見つけるためにいくつかアドバイスが必要です
スワップを使用してステップ4を削除したいと考えていますが、その方法を見つけることができません。すべてのパーティクルは、properties
とnextProperties
またはoldProperties
という名前のいくつかの要素を持つクラスです。どのようにそれにアプローチしますか?
関連しているとき、これはいくつかのコードを見ずに答えることは非常に困難です。あなたの問題を示す簡単な例を作ることができますか? –
特定のセクションのタイミングを取って、ボトルネックがどこにあるのか正確に見てみることができます。一度それを見つけたら、遅いコードを投稿することで、善良な人々があなたの解決策を見つけるのを助けます。 –