0

1. 次の問題に対して mapreduce のオーバーヘッドが高すぎますか? 各マップ/リデュース サイクル (たとえばディスコ) が非常に軽いジョブにかかる時間を知っている人はいますか? 2. この問題に対する mapreduce のより良い代替手段はありますか?

map reduce に関して言えば、私のプログラムは 60 の map フェーズと 60 の reduce フェーズで構成されており、これらすべてを 1 秒で完了する必要があります。この方法で解決する必要がある問題の 1 つは、約 64000 の変数を使用した最小限の検索です。検索用のヘッセ行列はブロック行列で、対角線に沿ってサイズ 64x64 の 1000 ブロックがあり、右端と下に 1 行のブロックがあります。:ブロック行列反転アルゴリズムの最後のセクションは、これがどのように行われるかを示しています。Schur 補数 S_A および S_D のそれぞれは、1 つの mapreduce ステップで計算できます。逆数の計算には、もう 1 ステップかかります。

これまでの私の調査から、mpi4py は良い賭けのようです。各プロセスは計算ステップを実行し、各ステップの後にクライアントにレポートを返すことができ、クライアントはサイクルを継続するための新しい状態変数をレポートすることができます。このようにして、プロセスの状態は失われず、計算を更新して続行できます。 http://mpi4py.scipy.org/docs/usrman/index.html

このwikiにはいくつかの提案がありますが、最も開発されたソリューションに関する方向性を持っている人はいますか ? http://wiki.python.org/moin/ParallelProcessing

ありがとう !

4

1 に答える 1

5

MPI は、クラスター ノード間でメッセージを渡すことによって並列処理の実装を可能にする通信プロトコルです。MPI で実装される並列処理モデルは、プログラマによって異なります。

MapReduce の経験はありませんが、これは特定の並列処理モデルであり、実装が簡単になるように設計されているようです。この種の抽象化は、プログラミング時間を節約し、問題に対する適切な解決策を提供する場合と提供しない場合があります。それはすべて、あなたがやろうとしていることの性質に依存します.

並列処理の秘訣は、最適なソリューションが問題固有のものであることが多く、問題の詳細を知らなければ推奨を行うのが難しいことです。

仕事を実行している環境と、プログラムがフリンの分類法に適合する場所について詳しく教えていただければ、さらに役立つ提案を提供できるかもしれません。

于 2011-09-08T02:01:30.353 に答える