グスタフソンの法則のソースを表示
←
グスタフソンの法則
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
{{出典の明記|date=2024年9月26日 (木) 19:18 (UTC)}} [[ファイル:Gustafson.png | サムネイル | 右 | グスタフソンの法則によるスピードアップ]] '''グスタフソンの法則'''({{lang-en|Gustafson's law}}、Gustafson-Barsis' law としても知られる)は、[[計算機工学]]における法則で、「十分に大きな規模の問題は、効率的に[[並列コンピューティング|並列化]]して解くことができる」事を示すものである。グスタフソンの法則は、並列化によってプログラムが高速化できる限界を示した[[アムダールの法則]]と密接に関係している。本法則は、{{ill|ジョン・グスタフソン|en|John Gustafson (scientist)}}によって1988年に初めて示された。 ''P'' がプロセッサの数であり、''S'' が[[:en:speedup|Speedup]]、''α'' がプロセスの並列化できない部分であるとすると、下記が成立する。 :<math>S(P) = P - \alpha ( P - 1 )</math> グスタフソンの法則は、計算機の規模が大きくなると利用可能な計算能力を使い切るほど性能がスケールしないという[[アムダールの法則]]に欠けていた部分に対応するものである。グスタフソンの法則では、問題の規模が固定である、また並列プロセッサ上の計算の負荷が一定であるという仮定を取り除き、代わりに固定時間の概念を提唱し、これにより高速化がスケールすることを示した。 アムダールの法則は、作業負荷や問題の規模が一定であることに基づいている。すなわち、プログラムの直列的な部分は、計算機の規模(すなわちプロセッサ数)によらず変化しない。しかし、並列化可能な部分は n 個のプロセッサに平等に分配可能であるとする。アムダールの法則の影響により、研究機関は並列コンパイラを開発し、問題の直列的な部分を減らし、[[並列コンピューティング|並列システム]]性能を上げようとするようになった。 ==グスタフソンの法則の実現== ''n'' を問題の大きさを示す量とする。 並列コンピュータ上でのプログラムの実行は、下記のように分解できる。 :<math>a(n) + b(n) = 1</math> ここで、''a'' は直列的な部分の割合で、''b'' は並列的な部分の割合である。ただしオーバーヘッドは無視する。 一方直列的なコンピュータでは ''p'' を[[並列コンピューティング|並列化]]した際のプロセッサ数とすると、相対的な処理時間は ''a''(''n'') + ''p'' · ''b''(''n'') である。 すなわち[[:en:speedup|Speedup]]は、直列的な場合の ''a''(''n'') + ''b''(''n'') = 1 に対して並列化した場合には (''a''(''n'') + ''p'' · ''b''(''n'')) であるから :<math>S = a(n) + p ( 1 - a(n) )</math> となる。ここで ''a''(''n'') は直列的な部分の割合を示す関数である。 直列的な関数 ''a''(''n'') が問題の大きさ ''n'' によって減少すると仮定すると、[[:en:speedup|Speedup]]は、''n'' が無限に大きくなれば希望通り''p'' に到達する。 グスタフソンの法則は、一見するとアムダールの法則の限界から並列コンピューティングを救い出すことができるように見える。 この違いは、グスタフソンの法則は膨大な数の並列計算機を用いても直列的な部分に与える影響はなく、したがってその部分の大きさは一定とみなせると考えるのに対し、[[アムダールの法則]]はプロセッサの数が増えるにしたがって直列的な部分の影響が増加するという考え方から生まれている。 ==二つの法則の考え方を示した比喩== アムダールの法則の示すところは下記のように喩えられる:{{cquote|60マイル離れた二つの都市を車で移動しており、既に 30 mph で1時間かけ、半分の距離を走行してきたとする(直列実行時間)。後半どれだけ速く走ることができたとしても、既に1時間走行しており、全体で60マイルしか距離がなく、到着までに平均速度 90 mph を達成することは不可能である。無限の速度で走行し一瞬で到着しても、60 mph にしかならない。}} 一方グスタフソンの法則は下記のように喩えられる:{{cquote|一台の自動車を 90 mph 以下で運転してきたとする。十分な時間と距離(残りの計算)があれば、既に運転してきた時間・距離によらず、車の平均速度を最終的に 90 mph に到達させることができる。例えば、すでに 1時間 30 mphで運転したとすると、あと2時間 120 mph で運転するか、あと1時間 150 mphで走行すれば、90 mph に到達することができる。}} ==グスタフソンの法則の限界== 解決する問題によっては本質的に大規模なデータセットを持たないものがある。例えば、世界中の人間に対して一つずつ存在するデータを処理するような問題は、年間に数パーセントしか大きくならない。 非線形のアルゴリズムは、グスタフソンの法則によって「明らかに」なる並列性をうまく活かす事ができない場合がある。Snyder は、O(N<sup>3</sup>) のアルゴリズムでは並列性を二倍にしても問題の大きさを 9% 増加させられるだけだと指摘している。したがって、非常に高い並列性を実現したとしても、もともとの並列化の度合いが少ない方法に対してあまり利点がない可能性がある。しかし実際には、特にクラスタや Condor のような分散コンピュータを用いることで、大きな進歩が達成されてきている。 == 関連項目 == * [[アムダールの法則]] ==外部リンク== * [http://www.scl.ameslab.gov/Publications/Gus/AmdahlsLaw/Amdahls.html Reevaluating Amdahl's Law] - the paper in which John Gustafson first described his Law. Originally published in [[:en:Communications of the ACM|Communications of the ACM]] 31(5), 1988. pp. 532-533 * [http://www.cs.washington.edu/homes/snyder/TypeArchitectures.pdf] -- Lawrence Snyder, "Type Architectures, Shared Memory, and The Corrolary of Modest Potential" {{DEFAULTSORT:くすたふそんのほうそく}} [[Category:並列アルゴリズム解析]] [[Category:理論計算機科学]] [[Category:コンピュータに関する法則]] [[Category:数学に関する記事]] [[Category:エポニム]]
このページで使用されているテンプレート:
テンプレート:Cquote
(
ソースを閲覧
)
テンプレート:Ill
(
ソースを閲覧
)
テンプレート:Lang-en
(
ソースを閲覧
)
テンプレート:出典の明記
(
ソースを閲覧
)
グスタフソンの法則
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報