「アムダールの法則」の版間の差分

削除された内容 追加された内容
192.241.177.202 (会話) による ID:78486385 の版を取り消し
タグ: 取り消し 差し戻し済み
MetaNest (会話) による ID:79140735 の版を取り消し学術的な根拠に欠ける記述のため再差し戻し
タグ: 取り消し 差し戻し済み
1行目:
[[ファイル:AmdahlsLaw.svg|thumb|right|300px|複数のプロセッサを使って並列計算してプログラムの高速化を図る場合、そのプログラムの逐次的部分は、制限を受ける。例えば、仮にプログラムの95%を並列化できたとしても、残りの5%は並列処理ができないのだ、という設定があっならば(その設定がどの程度妥当であるかはさておき)、どれだけプロセッサ数を増やしたとしても、図で示したように20倍以上には高速化しない。]]
'''アムダールの法則'''(アムダールのほうそく、Amdahl's law)は、ある計算機システムとその対象とする計算についてのモデルにおいて、その計算機の並列度を上げた場合に、並列化全体として期待できない部分る全体存在、特にそ性能向上割合が「ボトルネック」となること程度数式として表現した法則ものである。[[コンピュータ・アーキテクチャ|コンピュータ・アーキテクト]]の[[ジーン・アムダール]]が主張したものであり、''Amdahl's argument''(アムダールの主張)という呼称もある<ref>{{Harvnb|Rodgers|1985|p=226}}</ref>。そのようなボトルネックとなる「[[並列化できない部分計算]]割合」が、結局のところ実際の要求においてどの程度であるか、というのはよくわからない。アムダール自身や、HPC分野における著名人では[[シーモア・クレイ|クレイ]]は悲観的だったと言われている。一方で2020年現在において、京コンピュータやそ複数後継である富岳のような、並列度プロセッサ頼み使ったしたシステムにおいて、複数応用で一定理論上成果が性能向がっていの限界を予測すということからは、あまり深刻な問題では無かったかもしによく使わないとも言える。
 
複数のプロセッサを使い並列計算によってプログラムの高速化を図る場合、そのプログラムの中で逐次的に実行しなければならない部分の時間によって、高速化が制限される。例えば、1プロセッサでは20時間かかるプログラムがあり、その中の1時間かかる部分が並列化できないと仮定する。すると、そのような仮定の下ならばしたがって、19時間ぶん(95%)は並列化できるが、どれだけプロセッサを追加して並列化したとしても、そのプログラムの最小実行時間は1時間(5%)より短くならない。なぜなら、並列化できない部分に必ず1時間かかるため、図にも示したように、この場合の高速化は20倍までが限界だからである。
 
== 詳細 ==