ようへい

2017年9月24日日曜日

平成27年 秋期 システムアーキテクト 午前Ⅱ 問20

マルチプロセッサによる並列処理において、1プロセッサのときに対する性能向上比はアムダールの法則で説明することができる。
性能向上比に関する記述のうち、適切なものはどれか。

[アムダールの法則]
$性能向上比 = \displaystyle \frac{ 1 }{ (1 - 並列化可能部の割合) + \displaystyle \frac{ 並列化可能部の割合 }{ プロセッサ数 } }$
  1. プロセッサ数が一定の場合、性能向上比は並列化可能部の割合に比例する。
  2. プロセッサ数を増やした場合、性能向上比は並列化可能部の割合に反比例する。
  3. 並列化可能部の割合が0.5の場合は、プロセッサ数をいくら増やしても性能向上比が2を超えることはない。
  4. 並列化可能部の割合が最低0.9以上であれば、性能向上比はプロセッサ数の半分以上の値となる。
解法
アムダールの法則
複数のプロセッサを使い並列計算によってプログラムの高速化を図る場合、そのプログラムの中で逐次的に実行しなければならない部分の時間によって、高速化が制限される。例えば、1プロセッサでは20時間かかるプログラムがあり、その中の1時間かかる部分が並列化できないとする。したがって、19時間ぶん(95%)は並列化できるが、どれだけプロセッサを追加して並列化したとしても、そのプログラムの最小実行時間は1時間より短くならない。なぜなら、並列化できない部分に必ず1時間かかるため、図にも示したように、この場合の高速化は20倍までが限界だからである。
アムダールの法則 - Wikipedia
https://ja.wikipedia.org/wiki/アムダールの法則
アムダールの法則の特徴を書いてあるっぽいのは ウ。
書かれている計算が合うかどうか確認してみる。
$性能向上比 = \displaystyle \frac{ 1 }{ (1 - 0.5) + \displaystyle \frac{ 0.5 }{ プロセッサ数 } }$
$性能向上比 = \displaystyle \frac{ 1 }{ 0.5 + \displaystyle \frac{ 0.5 }{ プロセッサ数 } }$
プロセッサ数が1の場合
$\displaystyle \frac{ 1 }{ 0.5 + \displaystyle \frac{ 0.5 }{ 1 } } = \displaystyle \frac{ 1 }{ 0.5 + 0.5 } = 1$
プロセッサ数が2の場合
$\displaystyle \frac{ 1 }{ 0.5 + \displaystyle \frac{ 0.5 }{ 2 } } = \displaystyle \frac{ 1 }{ 0.5 + 0.25 } = 1.33$
プロセッサ数が16の場合
$\displaystyle \frac{ 1 }{ 0.5 + \displaystyle \frac{ 0.5 }{ 16 } } = \displaystyle \frac{ 1 }{ 0.5 + 0.03125 } = 1.88$
あってそう。正解は
関連記事

0 件のコメント:

コメントを投稿