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

削除された内容 追加された内容
MetaNest (会話) による ID:79140735 の版を取り消し学術的な根拠に欠ける記述のため再差し戻し
タグ: 取り消し 差し戻し済み
ダークえなり (会話) による ID:79710984 の版を取り消し 「残りの5%は並列処理ができないため」などという、単なる仮定を変えられない事実であるかのように決めつけることにこそ、全く学術的根拠が無いんですが……
タグ: 取り消し
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倍までが限界だからである。
 
== 詳細 ==