アムダールの法則と並列プログラムの最大スピードアップについて知っています。しかし、グスタフソンの法則を適切に研究することはできませんでした。グスタフソンの法則とは何ですか?アムダールの法則とグスタフソンの法則の違いは何ですか?
アムダールの法則
順次コードがあり、その計算の小数f
が並列化されて並列に動作しているN
処理ユニットで実行され、残りの小数1-f
は改善できない、つまり並列化できないとします。アムダールの法則では、並列化によって達成されるスピードアップは
グスタフソンの法則
アムダールの視点は、一定量の逐次計算時間をとるコードを扱うため、固定計算問題サイズに焦点を当てています。 Gustafsonの異論は、大規模な並列マシンでは、非常に大きなデータセットの計算を一定時間で実行できるため、以前は不可能であった計算が可能になることです。言い換えれば、並列プラットフォームは、コードの実行を高速化するだけではなく、より大きな問題への対処を可能にします。
ts
プロセッシングユニットでN
を実行するのに時間がかかるアプリケーションがあるとします。その計算時間のうち、小数(1-f)
は順次実行する必要があります。したがって、このアプリケーションは完全にシーケンシャルなマシンでt
に等しい時間で実行されます
問題のサイズを大きくする場合は、処理ユニットの数を増やして、コードが並列で実行される時間の割合をf·ts
に保つことができます。この場合、順次実行時間はN
とともに増加し、これが問題のサイズの指標になります。その後、スピードアップは
その場合、効率は
そのため、N
を増やすと効率が向上する傾向があります。これらのかなり楽観的なスピードアップと効率の評価の落とし穴は、問題のサイズが大きくなると通信コストが増加しますが、通信コストの増加はグスタフソンの法則では考慮されないという事実に関連しています。
参照
G. Barlas、マルチコアおよびGPUプログラミング:統合アプローチ、Morgan Kaufmann
M.D.ヒル、M.R。マーティ、マルチコア時代のアムダールの法則、コンピュータ、vol。 41、n。 7、pp。33-38、2008年7月。
[〜#〜] gpgpu [〜#〜]
汎用グラフィックスプロセッシングユニットに適用されるアムダールの法則に関する興味深い議論があります。
同じ問題を異なる視点から見ています。アムダールの法則によれば、たとえばCPUが100個増えた場合、同じ問題をどれだけ速く解決できるでしょうか。
グスタフソンの法則によれば、100個のCPUを備えた並列コンピューターがこの問題を30分で解決できるとすると、そのようなCPUが1つだけのコンピューターが同じ問題を解決するのにどのくらいの時間がかかりますか?
グスタフソンの法則は状況をよりよく反映しています。たとえば、20歳のPCを使用して今日のほとんどのビデオゲームをプレイすることはできません。
アムダールの法則
一般に、ジョブのフラクションfを並列部分に分割することが不可能である場合、全体で並列処理できるのは1/f倍だけです。それがアムダールの法則です。
グスタフソンの法則
一般に、pの参加者、および並列化できない分数fの場合、全体でp +(1−p)f倍速くなる可能性があります。それがグスタフソンの法則です