5

並列拡張 ( June CTP など) を使用する可能性を含め、並列コンピューティングのアプローチが Web アプリケーションでどのような役割を果たしているのかについて、いくつかの意見を聞きたいと思います。このアプローチが適している、または適していないシナリオは何ですか?

IIS と Web ブラウザーがどのようにタスクをスレッド化するかについての私の理解はかなり限られています。誰かがよく理解しているなら、それについての洞察をいただければ幸いです。一般的に、IIS と Web ブラウザーの動作が、Web アプリケーションでスレッド化されたタスクや非同期タスクを作成する ROI を制限するかどうかを知りたいと思っています。

前もって感謝します。

4

5 に答える 5

3

Web サーバーは、すでに高度にスレッド化されており、並列リクエストを処理しているという点で、興味深い課題を提示しています。したがって、忙しいサイトでは、目的のために多くのコアを盗むことができることに頼ることはできません. もちろん、軽いトラフィックしか期待できず、サイトで大量の処理 (データ処理など) が必要な場合は、いくらか節約できる可能性があります。

Parallel Extensions は、[悪用] にコアを利用できると合理的に期待できるクライアントまたは専用のサービス アプリでより適切に機能することを期待しています。

于 2008-12-18T14:40:43.823 に答える
0

Webベースのアプリケーションの並列拡張についてはあまり気にしません。ページに複数のリモートリクエスト(db呼び出し、またはリモートWebサービス)がある場合は、調べる価値があるかもしれません。

Webベースのアプリケーションはすでに高度に並列化されています。また、サーバー側のメソッド内での並列実行からはあまりメリットがありません。1つの例外は、サーバー側コード内の複数のリモートリクエスト(dbmsまたはWebサービス)に関するものです。ほとんどの時間はリモートリソースの待機に費やされ、複数のリクエストの待機時間も並行して動作する可能性があります。リクエストをシリアル化するのとは対照的に。

たとえば、すべてのdb呼び出しとwebservice呼び出しを別々のスレッドで行い、ページのライフサイクルの後半でユーザーコントロールで使用するために、結果をhttpcontextのアイテムコレクションに表示することを計画しているポータルページがあります。ただし、ここでもajaxテクニックを使用することもできます。

于 2008-12-19T06:24:02.283 に答える
0

表示ロジックの場合、これらの関数は多くの場合、アプリが処理するのに高速で単純であるため、PE を使用してもあまりメリットはありません。IIS での並列アーキテクチャの開発は Microsoft にお任せください。

ただし、実行にかなりの時間がかかるレポートやビジネス ロジックを長時間実行する場合に、メリットが見られます。このような場合、PE を使用すると、アプリケーションを劇的に高速化し、キャッシングと組み合わせることで、エンド ユーザーにはるかに強力なユーザー エクスペリエンスを提供できます。

1 つの例は、大量のデータを反復処理し、それを解析するか、それに対して何らかの機能を実行する必要がある複雑なレポートを実行する場合です。PE を使用すると、20 分かかっていた作業が、Web アプリでビジネス ロジックが実行されている場合に数分かかることがあります。(DB はおそらく既にスレッド化されているため、データベースを無視します)。サプライヤーから何を購入すればよいかを知らせる事前注文機能があり、スレッド化後 5 時間から 30 分に短縮されたため、スレッド化/PE には明らかな利点があります。

2 番目のシナリオは、顧客ごとに複雑なデータを解析する必要がある場合です。アプリのリクエストは別のスレッドで実行される場合がありますが、他のアイドル スレッドを利用してその能力を活用できる場合があります。この目的で PE を使用することは理にかなっています。

于 2009-01-06T22:39:07.483 に答える
0

非同期モデルに移行することで、TPL を使用して I/O バウンド操作を改善できる場合があります。また、低負荷の状況で Web サーバー上で使用可能な未使用のプロセッサー容量をさらに活用することで、要求の待ち時間を改善できる場合もあります。プロセッサがすでに 100% 使用されている高負荷下では、並列処理を追加するとサーバーのスループットが低下するため、これについてはかなり慎重に検討する必要があります。

これについては、Parallel Extensions チームのブログで説明されています。

ASP.NET アプリで .NET 4 用の Parallel Extensions を使用する

于 2010-05-07T15:36:07.267 に答える
-3

一般に、控えめな Web サーバーは、キャッシュ可能な静的コンテンツを提供するのに最適です。並列処理に適しているかどうかは本当に疑わしいです(興味のある純粋な実験を除いて)。

コメントの後のいくつかの明確化: 私の元のポイントは、IIS が並列処理しないということではありません。私が言いたいのは、「並列処理」は実際には Web アプリケーションを提供するだけではないということです。並列処理の問題についての私の理解は、小さな部分に分割された 1 つの大きなコンピューティングの問題であり、複数のプロセッサで並列に実行されます。

同じプロセッサ上で複数のスレッドを実行することは、シングル スレッドで実行するよりも、この種の問題に対して実際には効率的ではありません。IIS を並列処理に組み込むことはできますか? あなたは賭けます。それは理想的なプラットフォームですか?いいえ。

于 2008-12-18T14:45:00.227 に答える