2012-04-09 9 views
0

恥ずかしそうな並列線形問題(各反復が他の反復とは無関係に多くの計算を行うforループ)のコア数を増やすと、効率はいくらか低下する(Ts /(p * Tp)としての効率)コアの数に対して線形に関係しますopenmp理論と実際の効率

私は、実際にはスレッドスケジューリング、OS、およびキャッシュの問題によって実装が大幅に遅くなることがあります。

私はスピードアップが得られると付け加えることができますが、理論的には理論的には理論的には の効率がpが高くなる直線的なスピードアップがあります。

質問:オペレーティングシステム、スレッドスケジューリング、メモリアクセス、およびその他のタイプの技術的な制限は、プロセッサの数が増えるにつれて、アルゴリズムの効率にどのように影響しますか?それはまったく影響を受けますか?

+2

問題と実装に依存しているので、答えることは不可能です。そして、「受け入れられる」ことは私にとって主観的なようです。 – duffymo

+0

はさらに詳しい情報を追加したので、うまくいけば質問に答えることができます – labotsirc

+0

いいえ、まだまだ一般的です。 – duffymo

答えて

3

あなたはAmdahl's Lawのようなものを考えているかもしれませんが、それぞれのケースの特徴によってピンを固定するのが難しくなります。

+0

おかげさまで、私はすでに一見したことがありましたが、何が起こるかを明確にするのに役立ちます。しかし、メモリ、OS、キャッシュがどれほどの量のopenmpの効率に影響を与えているのかは依然として謎です。私は、他の人がリニアスピードアップアルゴリズムの効率を直線的に低下させているかどうか知りたいのですが、 – labotsirc

1

あなたは、強力なスケーリングになります。

https://www.sharcnet.ca/help/index.php/Measuring_Parallel_Scaling_Performance#Strong_Scaling

あなたはので、あなたが言及したすべての要因の問題に複数のコアを追加するとあなたは基本的に収穫逓減を取得します。

+0

ありがとうございます。私はgpusでプログラミングに慣れていましたが、問題の種類のためにその効果が目立つように見えませんでした。 – labotsirc

+0

強力なスケーリングテストを行い、最も速い結果を出すコアの数を取ることをお勧めします。しかし、これはマシンに依存することを覚えておいてください – Benoir

+0

良いアドバイスありがとう – labotsirc

0

問題がCPUにバインドされているか、メモリにバインドされていますか?あなたのシステムアーキテクチャは何ですか?SMPまたはNUMA?あなたのプロセッサはどれくらいのキャッシュを持っていますか?スレッドをコアにバインドするかどうか...

あなたの質問に誰かが答える前に考慮すべきパラメータが多すぎます。私は、インテルVTuneアンプやOracleコレクター/アナライザーのようなものを使用して、非効率性の原因と原因を確認することをお勧めします。

関連する問題