ネットワークスペシャリスト 2015年 午前2 問23
問題文
マルチプロセッサによる並列処理において、1プロセッサのときに対する性能向上比はアムダールの法則で説明することができる。性能向上に関する記述のうち、適切なものはどれか。
〔アムダールの法則〕
選択肢
ア:プロセッサ数が一定の場合、性能向上比は並列化可能部の割合に比例する。
イ:プロセッサ数を増やした場合、性能向上比は並列化可能部の割合に反比例する。
ウ:並列化可能部の割合が0.5の場合は、プロセッサ数をいくら増やしても性能向上比が2を超えることはない。(正解)
エ:並列化可能部の割合が最低0.9以上であれば、性能向上比はプロセッサ数の半分以上の値となる。
🔒 解説は解答すると表示されます
アムダールの法則【午前2解説】
正解の理由
アムダールの法則により、並列化可能な割合 とプロセッサ数 のときの性能向上比(スピードアップ) は
で与えられます。並列化可能部が の場合、 を無限大にしても極限は
となり、これを超えることはありません。したがって選択肢のうち正しいのは ウ です。
解法ステップ
- 問題文の式を確認し、 が (並列化可能部の割合)と (プロセッサ数)でどのように変化するか理解する。
- 各選択肢が主張する関係を式で表現して検証する。例えば (ウ) の場合は を代入して、 の極限を取る: より上限が2であると一目で分かる。
- 他の選択肢は比例関係や反比例といった語に着目し、式の依存関係を調べて矛盾する点を指摘する。
選択肢別の誤答解説
-
ア: 「プロセッサ数が一定の場合、性能向上比は並列化可能部の割合に比例する。」
誤りです。固定された に対する は に対して線形(比例)ではなく逆数の形をとるため、比例とは言えません。 -
イ: 「プロセッサ数を増やした場合、性能向上比は並列化可能部の割合に反比例する。」
誤りです。 を増やすと分母中の が小さくなり は増加しますが、「反比例( のような関係)」とは無関係です。 は と の複合的な関数であり、単純な反比例では表せません。 -
ウ: 「並列化可能部の割合が0.5の場合は、プロセッサ数をいくら増やしても性能向上比が2を超えることはない。」
正しいです。上の理由どおり、 の上限は です。よって ウ が正解です。 -
エ: 「並列化可能部の割合が最低0.9以上であれば、性能向上比はプロセッサ数の半分以上の値となる。」
誤りです。主張は を意味しますが、 の上限は であり、 のときは上限が10です。 が20を超えれば となり不成立になります。したがって一般成り立ちません。
よくある誤解
-
「アムダールの法則ではプロセッサを増やすと必ず性能が下がることがある」
→ 純粋なアムダールの式(オーバーヘッドを含まない)では、 と の下で常に が成り立ち、性能が1未満(遅くなる)にはなりません。性能低下が観測されるのは、通信や同期などのオーバーヘッドを明示的に式に加えた場合です。 -
「並列化可能部の割合が小さいと必ずマルチプロセッサ化は無意味」
→ 並列化割合が小さいと得られる上限は低いですが、実用上はコストや目的に応じて最適な を選べば有益なケースもあります。効果を評価する際は上限 と必要なコストを比較してください。
補足コラム
アムダールの法則は「ある問題サイズで固定された仕事量に対する並列化の効果の上限」を示します。一方で問題サイズが増大する(データセットが大きくなる)場合は、Gustafsonの法則の方が現実的に有用な分析を与えることがあります。また実システムでは通信時間、負荷分散の不均一、同期待ちなどのオーバーヘッドが重要になるため、性能評価はこれらを含めてモデル化する必要があります。
簡単なオーバーヘッド例(概念): ベースライン時間を1、並列化割合 、、さらに処理に伴う追加オーバーヘッドを合計 とすると、
となり、オーバーヘッドが大きければ実測で遅くなることがあり得ます(これは純粋なアムダール式にオーバーヘッド項を加えた場合の話です)。
FAQ
Q. アムダールの法則で速度向上比が1未満になることはありますか?
A. 純粋に示された式 の範囲では、 が成り立ち速度低下(1未満)は起きません。速度が低下する場合は、通信・同期・スレッド生成などのオーバーヘッドをモデルに含めたときに発生します。
A. 純粋に示された式 の範囲では、 が成り立ち速度低下(1未満)は起きません。速度が低下する場合は、通信・同期・スレッド生成などのオーバーヘッドをモデルに含めたときに発生します。
Q. 並列化可能部が0.5なら、現実でも最高2倍が限界ですか?
A. 理論上の上限は2倍ですが、実装上はオーバーヘッドで実効性能がさらに低くなることがあります。逆に問題サイズを増やすと(並列化の割合や内容が変われば)実効的な利得が変わるため、単純比較だけで結論を出さないことが重要です。
A. 理論上の上限は2倍ですが、実装上はオーバーヘッドで実効性能がさらに低くなることがあります。逆に問題サイズを増やすと(並列化の割合や内容が変われば)実効的な利得が変わるため、単純比較だけで結論を出さないことが重要です。
Q. Gustafsonの法則とはどう違いますか?
A. アムダールは固定された総仕事量に対する並列化の上限を示す一方、Gustafsonは問題サイズが増大する状況で並列処理が線形に近い拡張性を持つことを示す考え方です。用途や評価したい観点に応じて使い分けます。
A. アムダールは固定された総仕事量に対する並列化の上限を示す一方、Gustafsonは問題サイズが増大する状況で並列処理が線形に近い拡張性を持つことを示す考え方です。用途や評価したい観点に応じて使い分けます。
関連キーワード: アムダールの法則、並列処理、スピードアップ、並列化率、オーバーヘッド、Gustafsonの法則

\ せっかくなら /
ネットワークスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

