0

1 つのアプリケーション インスタンスが複数のコアや複数の物理プロセッサを使用できることはわかっています。クラウドとクラスター コンピューティング、またはその他の特殊なシナリオでは、単一のスタンスが複数のコンピューターまたは複数の OS インスタンスで実行できるかどうかはわかりません。

これは私にとって重要です。プログラミングが悪いと見なされるだけでなく、静的(C# など) (グローバル) 変数をいくつか使用しており、これらの変数がコンピューター間で共有されると、プログラムが予期しない動作をする可能性があるからです。

更新より具体的に説明します。接続数がコンピューターごとの制限を超えないようにするために、アクティブな IP 接続の数をカウントする 1 つの変数を持つ .NET アプリケーションを作成しています。そのアプリケーションをクラウド コンピューティング ホストにデプロイするかどうか、コンピューターごとに変数のインスタンスを 1 つ持つかどうかが心配です。

4

4 に答える 4

2

このようなシナリオ (複数のコンピューターにまたがる単一のインスタンス) を実現する方法を知りたい場合は、 MPIに関する記事を読むとよいと思います。

これは、分散メモリ システムで実行される並列プログラムをモデル化するプロセス間の通信の事実上の標準となっています。

懸念事項について: 明らかに、プログラムを意識的に変更して、複数のコンピューターで 1 つのインスタンスとして実行する必要があります。そうでなければ、もちろん共有は行われず、Shy が書いているように、心配する必要はありません。この種のことは自動的には起こりません。

于 2009-01-13T17:01:36.717 に答える
2

どのプログラミング環境 (言語) を使用していますか? 「静的」の意味を正確に定義する必要があります。ほとんどの場合、MPI や RPC などの明示的なチャネルを介する場合を除き、異なるコンピューター間で情報を共有することはできません。

ただし、抽象化された高レベル環境は、「複数のコンピューターで実行する」という概念を完全に隠すように設計されている場合があります。クラスタ上で実行でき、実際に異なる物理マシン間で静的変数を共有する仮想マシンを設計することは考えられますが、この場合、プログラムは単一の仮想マシンで実行されており、1 つまたは複数の物理マシンで実行する必要があるかどうかが問題になります。違いはありません。

于 2009-01-13T17:02:32.423 に答える
1

これが起こる状況を想像することさえできないのなら、なぜそれについて心配しているのですか?

通常、これは、ある種の RPC が関係するシナリオで発生する可能性があります。

于 2009-01-13T16:53:10.710 に答える
-2

はい、distccがあります。配布されているGCCコンパイラです。

于 2009-01-13T17:24:36.357 に答える