誰かがこの例を手伝ってくれて、2番目の部分の作業方法を教えてもらえますか?
質問は :
天気予報アルゴリズムの3分の1が本質的にシリアルで、残りが並列化可能である場合、単一コアの実装で150%の高速化を保証するために必要なコアの最小数はいくつですか?
ii。上司が数値を200%に修正します。あなたの新しい答えは何ですか?
よろしくお願いします!!
誰かがこの例を手伝ってくれて、2番目の部分の作業方法を教えてもらえますか?
質問は :
天気予報アルゴリズムの3分の1が本質的にシリアルで、残りが並列化可能である場合、単一コアの実装で150%の高速化を保証するために必要なコアの最小数はいくつですか?
ii。上司が数値を200%に修正します。あなたの新しい答えは何ですか?
よろしくお願いします!!
推測:アルゴリズムが1/3シリアルおよび2/3パラレルの場合...追加した各コアのパフォーマンスが66%向上すると思います...したがって、150%向上するには、さらに3つ必要です。コア、および200%の増加には、4が必要です。
これは推測です。あなたの教科書はもっと役立つかもしれません:)
アルゴリズムが単一のコアで実行され、90 分かかる場合、シリアル部分に 30 分、並列部分に 60 分かかります。
CPU を追加します。
30はシリアル部、30はパラレル部です(60の半分がシリアル部と重なっています)。
90 / 60 = 150% 増加。
少し遅れましたが、ここに答えがあります:
1) 150% 増加 -> 前述のように少なくとも 2 コアが必要dbasnett
。
2) 200% 増加 -> Amahld の法則に基づいて少なくとも 4 コアが必要:
ここでは、計算を実行するために全体で 90 分かかりました。Pはアルゴリズムの実際に拡張された部分 (並列化可能な部分) で、90 の 2/3 です。N はコアの数です。したがって、コアのみがある場合は次のようになります。
1 を取得します。これは 100% を意味し、これはアルゴリズムが標準的な方法で実行する方法です (マルチコア アクセラレーションを使用しないため、並列化のスピードアップはありません)。
ここで、前の式が 2 に等しい N 個のコアを見つける必要があります。ここで、2 は、アルゴリズムが半分の時間 (並列化がない場合は 90 分ではなく 45 分) で実行されることを意味し、したがって 200% のスピードアップになります。
以来:
次のことがわかります。
したがって、4 つのコアがアルゴリズムの 2/3 を並行して計算すると、200% のスピードアップが得られます。同じことが 150% にも当てはまり、dbasnett
既に説明したように 2 になります。
ものすごく単純。
複雑なアルゴリズムでは、並列化可能な部分がさらに分割される可能性があることに注意してください (理論上は、並列化可能な部分ごとに異なる数の処理ユニットを同時に使用できます)。
ウィキペディアをさらに見ることができます(例もあります):
http://en.wikipedia.org/wiki/Amdahl%27s_law#説明
とにかく、原則は同じです:
Tをアルゴリズムが完了するために実行する必要がある時間、Aをそのシリアル部分、B を並列化可能な部分、 Nを並列 CPU の数とすると、B をさらに小さなセクションに分割し、各部分で計算を実行できます。
C、D、G では、たとえば N の代わりに M CPU を採用することができます (M != N の場合、スピードアップはもちろん異なります)。
そして最終的には、CPU の数を増やしても問題にならない時点に到達します。
また、アルゴリズムの高速化は、せいぜい合計実行時間 (T) をシリアル部分のみの実行時間 (A) で割ったものになる傾向があります。
したがって、並列計算は、アルゴリズムのシリアル部分の実行時間が短い場合にのみ非常に便利です。