|
===================================== 〔語彙分解〕的な部分一致の検索結果は以下の通りです。 ・ ー : [ちょうおん] (n) long vowel mark (usually only used in katakana) ・ 法 : [ほう] 1. (n,n-suf) Act (law: the X Act)
アムダールの法則(アムダールのほうそく、Amdahl's law)は、ある計算機システムとその対象とする計算についてのモデルにおいて、その計算機の並列度を上げた場合に、全体として期待できる全体の性能向上の程度を数式として表現したものである。コンピュータ・アーキテクトのジーン・アムダールが主張したものであり、''Amdahl's argument''(アムダールの主張)という呼称もある。並列計算の分野において、複数のプロセッサを使ったときの理論上の性能向上の限界を予測するのによく使われる。 複数のプロセッサを使い並列計算によってプログラムの高速化を図る場合、そのプログラムの中で逐次的に実行しなければならない部分の時間によって、高速化が制限される。例えば、1プロセッサでは20時間かかるプログラムがあり、その中の1時間かかる部分が並列化できないとする。したがって、19時間ぶん(95%)は並列化できるが、どれだけプロセッサを追加して並列化したとしても、そのプログラムの最小実行時間は1時間より短くならない。なぜなら、図にも示したように、この場合の高速化は20倍までが限界だからである。 == 詳細 == アムダールの法則は、並列化しても問題の大きさが変化しないという前提と、問題には並列化できない部分があるという前提の上で、逐次的アルゴリズムとそれに対応したアルゴリズムの並列化実装によって期待できる高速化の関係をモデル化したものである。例えば、ある大きさの問題をあるアルゴリズムを並列化実装したもので実行した場合、問題の12%を並列化によって好きなように高速化できるとする(残り88%は並列化できない処理である)。アムダールの法則によれば、このときの並列化していない実装と比較した並列化版による高速化は最大でも 倍にしかならない。 より技術的に解説すると、この法則は、ある計算のうち高速化によって影響を受ける部分の割合 ''P'' とその性能向上率 ''S'' から、全体として達成可能な性能向上率を求めるものである。例えば、ある改良が計算全体の 30% に影響する場合、''P'' は 0.3 である。また、その部分が2倍に高速化されるなら ''S'' は 2 である。アムダールの法則によれば、全体としての性能向上は次の式で表される。 :. 従来の計算時間を 1 とする。改良されたプログラムの計算時間は、改良と関係しない部分の計算時間(1 − ''P'')と改良された部分の計算時間(''P''/''S'')の合計となる。全体の性能向上率は、従来の計算時間を改良されたプログラムの計算時間で割ったものであり、上の式はそれを表している。 もう少し複雑な例を挙げる。あるタスクが4つの部分に分割されるとする。各部のタスク実行時間に占める割合は P1 = 0.11 (11%)、P2 = 0.18 (18%)、P3 = 0.23 (23%)、P4 = 0.48 (48%) で、全部を合計すると 100% になる。そこで、各部分に独自の改良を施す。P1 は改良しないので S1 = 1 (100%)、P2 は5倍に性能向上したので S2 = 5 (500%)、同様に S3 = 20 (2000%)、S4 = 1.6 (160%) とする。改良されたタスクの実行時間は であるから、これに代入すると : となり、オリジナルの半分弱の時間ということがわかる。従って、性能向上率は と約2倍以上になる。注意すべきは、20倍とか5倍といった改良を施しても、システム全体としてはあまり効果が出ない点である。これは、P4 が元々実行時間の約半分を占めていて、S4 が 1.6 という点と P1 が全く改良されていない点が影響している。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「アムダールの法則」の詳細全文を読む スポンサード リンク
|