質問

質問:

  • コンピュータシミュレーションはどのように行われますか。通常、リソースが集中しますか?

たとえば、 Simul8 :離散イベントシミュレーションパッケージ-なぜこれが計算的に行われるのか集中的に、どの要因(計算)がこれに寄与しますか?

役に立ちましたか?

解決

離散イベントシミュレーションは非常に広い用語です。レモネードスタンドから、多国籍企業のトランザクションやロジスティクス、複雑なソフトウェアシステム、まだ存在しない(シミュレーションを実行するマシンよりもはるかに複雑で高度な)新しいコンピューターアーキテクチャまで、あらゆるものをシミュレートできます。

私の分野(コンピュータアーキテクチャ)の例を使用しますが、計算コストがかかる方法はかなり一般化されるはずです。多くの場合、分散システムをシミュレートしようとしています。これは、非常に複雑なダイナミックを一緒に実装する、よりシンプルな制御ロジックを備えた幾分独立したエージェントです。コンピューティングシステムの場合、シミュレータの結合されたワーキングセットは、少なくとも結合されたすべての構成要素のアーキテクチャ、マイクロアーキテクチャ、およびメモリ状態と同じ大きさです。各コンポーネントが少しでも複雑な場合、これはシミュレーションの各タイムステップを完了するときの時間的および空間的局所性が劇的に減少することを意味します。タイムステップごとにワーキングセット全体を実行する必要があることで暗示されるキャッシュ使用率の低さは、パフォーマンスに1〜2桁影響する可能性があります。複数のタイムステップで各コンポーネントを独立して実行し、結果を定期的にマージするだけでは問題があるため、このパターンは避けられません。

さらに、多くの場合、コンポーネントのシミュレーションよりもかなり多くのスペースと時間のオーバーヘッドをもたらすあらゆる種類の統計を保持する必要があります。

要するに、下限はシミュレーションのすべてのコンポーネントの複雑さの合計です。実際には、コンポーネントが多数ある場合、コンポーネントがシミュレーションを実行するホストマシンよりも複雑または実質的に異なる場合、およびかなりの量がある場合、多くの非効率性が導入されます計装の。

最後に、ディスクリートイベントシミュレーションでは、多くの場合、アイテムをキューに配置し、一連のポインターを追跡することに基づいてリクエストを配置するキューを見つけます。これらの操作は並列化が難しく、問題をさらに複雑にします。ただし、前述したように、<!> quot;離散イベントシミュレーション<!> quot;些細なものから不可能なものまですべてを網羅できるため、一般的なパターンを抽出することは困難です。

他のヒント

コンピューターシミュレーションは通常、複数のシナリオを迅速に実行して比較します。

たとえば、金融シミュレーションは通常、何千ものモンテカルロシミュレーションで実行されます実行します。

  

通常、シミュレーションには以下が含まれます。   モデルの10,000以上の評価、   過去にのみだったタスク   スーパーコンピュータを使用して実用的。   - http://www.vertex42.com/ExcelArticles/mc/MonteCarloSimulation.html

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top