0

要するに:

Tandem HPNS (水平スケーラブル) などの MPP インフラストラクチャで常に実行されるアプリケーションに、マルチスレッド スケーラビリティ (垂直スケーラビリティ) を追加する価値はありますか?

では、さらに詳しく説明します。

Java を使用した MPP ( Massively Parallel Processing )の下での開発を多くの場所で見てきましたが、それが Java であれば、Java が提供するすべてのものを使用できると考える傾向があります (ご存知のように、一度書けばどこでも実行できます! ) マルチスレッド ライブラリ (そのようなスレッド、 AKKA、スレッド プールなど) は、並列処理を使用してパフォーマンスを高速化することで大いに役立ちます。

忘れてはならないのは、MPP の場合、水平方向にスケーラブルであることです。つまり、より高速なアプリが必要な場合は、アプリケーションの複数のコピーをそれぞれ異なるプロセッサで実行するように設計する必要があります。

反対側には、SMP ( Symmetric Multi-processing ) インフラストラクチャ (ここには Windows、Linux、UNIX のような環境があります) があり、これらについて心配する必要はありません。 OSが利用できるさまざまなコアに実行が分散されるスレッド(ここでは、マルチスレッドライブラリの使用に同意します)。

したがって、これを念頭に置いて、私の質問は、並列処理の使用が負荷を改善するのに大いに役立つ多くの検証やその他の要件を備えたデータの重い負荷を実行するアプリケーションを作成する必要があるかどうかです。ただし、MPP 環境 ( Tandem HPNS など) で実行する必要があります。

開発者は、マルチスレッド ライブラリを追加して並列処理と同時実行性を追加することに時間を費やす必要がありますか?

いくつかの補足事項:

1) SMP が優れている、または MPP が優れていると言っているのではありません。それらは単に異なるインフラストラクチャです。私のポイントは、MPP 環境でマルチスレッド ライブラリを使用することだけです。つまり、MPP でマルチスレッドを使用するアプリケーションは、サーバーが持つ N 個の CPU のうちの 1 つの CPU しか使用しないという事実です。

2) MPP サーバーがマルチスレッド ライブラリをサポートしていないと言っているのではありません。HPNS でマルチスレッドを実行できますが、20 個のスレッドがあっても、1 つのスレッドが他のスレッドをブロックしているため、実際の並列処理はありません。異なる CPU でアプリケーションを分散 (複数のコピーを実行) していない限り。

4

1 に答える 1