1

質問:

  • コンピューター シミュレーションは、通常、リソースを集中的に使用しますか?

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

4

2 に答える 2

7

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

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

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

つまり、下限は、シミュレーションのすべてのコンポーネントの複雑さの合計です。実際には、多くのコンポーネントがある場合、コンポーネントがより複雑であるか、シミュレーションが実行されるホスト マシンとは大幅に異なる場合、および大量の計測器がある場合、多くの非効率性が導入されます。

最後にもう 1 つ: 離散イベント シミュレーションでは、多くの場合、アイテムをキューに配置し、一連のポインターを追跡することに基づいて、要求を配置するキューを見つけます。これらの操作は並列化が難しく、問題をさらに複雑にしています。しかし、先ほども言いましたが、「離散事象シミュレーション」という言葉には些細なことから不可能なことまでありますので、一般的なパターンを抽出することは困難です。

于 2009-03-17T02:59:32.987 に答える
1

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

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

シミュレーションには、通常、モデルの 10,000 回を超える評価が含まれます。これは、過去にはスーパー コンピューターを使用した場合にのみ実用的でした。- http://www.vertex42.com/ExcelArticles/mc/MonteCarloSimulation.html

于 2009-03-17T02:55:41.640 に答える