システムアーキテクト試験 2017年 午前220


マルチプロセッサによる並列処理で得られる高速化率(単一プロセッサのときと比べた倍率)Eを、次の式によって評価する。r=0.9のアプリケーションの高速化率がr=0.3のものの3倍となるのは、プロセッサが何台のときか。
E=11r+rnE = \frac{1}{1 - r + \frac{r}{n}}
ここで、  n:プロセッサの台数(\1n\1 \preceq n)  r:対象とする処理のうち、並列化が可能な部分の割合(\0r1\0 \preceq r \preceq 1) とし、並列化に伴うオーバーヘッドは考慮しないものとする。
4
5
6(正解)
3

解説

マルチプロセッサによる並列処理の高速化率計算【午前2 解説】

要点まとめ

  • 結論:並列化率が0.9のアプリケーションの高速化率が0.3の3倍になるのはプロセッサ6台のときです。
  • 根拠:高速化率はAmdahlの法則に基づき、E=11r+rnE = \frac{1}{1-r + \frac{r}{n}}で計算し、条件を式に代入して解きます。
  • 差がつくポイント:並列化率の違いが高速化率に与える影響を正確に理解し、式の変形と代入を丁寧に行うことが重要です。

正解の理由

問題は、並列化率r=0.9r=0.9の高速化率E0.9E_{0.9}が、並列化率r=0.3r=0.3の高速化率E0.3E_{0.3}の3倍になるときのプロセッサ台数nnを求めるものです。
高速化率の式は
E=11r+rnE = \frac{1}{1 - r + \frac{r}{n}}
です。
これを用いて、
E0.9=3×E0.3E_{0.9} = 3 \times E_{0.3}
を満たすnnを計算すると、n=6n=6となり、選択肢の中ではエが正解です。

よくある誤解

  • 並列化率が高いほど高速化率は単純に比例すると誤解しがちですが、プロセッサ数との関係を正しく計算しないと誤答になります。
  • プロセッサ数を固定して高速化率を比較するのではなく、条件に合うプロセッサ数を求める問題であることを見落としやすいです。

解法ステップ

  1. 高速化率の式を確認する:
    E=11r+rnE = \frac{1}{1 - r + \frac{r}{n}}
  2. 条件式を立てる:
    110.9+0.9n=3×110.3+0.3n\frac{1}{1 - 0.9 + \frac{0.9}{n}} = 3 \times \frac{1}{1 - 0.3 + \frac{0.3}{n}}
  3. 分母を整理して方程式を作る:
    10.1+0.9n=30.7+0.3n\frac{1}{0.1 + \frac{0.9}{n}} = \frac{3}{0.7 + \frac{0.3}{n}}
  4. 両辺の逆数を取って整理:
    0.1+0.9n=0.7+0.3n30.1 + \frac{0.9}{n} = \frac{0.7 + \frac{0.3}{n}}{3}
  5. 分母を払ってnnについて解く:
    3×0.1+3×0.9n=0.7+0.3n3 \times 0.1 + \frac{3 \times 0.9}{n} = 0.7 + \frac{0.3}{n}
    0.3+2.7n=0.7+0.3n0.3 + \frac{2.7}{n} = 0.7 + \frac{0.3}{n}
  6. 両辺の項を移項して整理:
    2.7n0.3n=0.70.3\frac{2.7}{n} - \frac{0.3}{n} = 0.7 - 0.3
    2.4n=0.4\frac{2.4}{n} = 0.4
  7. nnを求める:
    n=2.40.4=6n = \frac{2.4}{0.4} = 6

選択肢別の誤答解説

  • ア(3):プロセッサ数が少なすぎて条件を満たさず、高速化率の差が3倍になりません。
  • イ(4):計算途中の誤差や式の変形ミスで出やすい値ですが、正確には条件を満たしません。
  • ウ(5):近い値ですが、正確な計算では高速化率の比が3倍にならず不正解です。
  • エ(6):正しい計算結果で、条件を満たすプロセッサ数です。

補足コラム

この問題はAmdahlの法則を利用した典型的な並列処理の性能評価問題です。
Amdahlの法則は、並列化可能な部分の割合rrとプロセッサ数nnにより、理論上の最大高速化率を示します。
実際には通信や同期のオーバーヘッドがあるため、理論値より低くなることが多い点も理解しておきましょう。

FAQ

Q: 並列化率rrが1の場合、高速化率はどうなりますか?
A: r=1r=1ならば、E=11n=nE = \frac{1}{\frac{1}{n}} = nとなり、理想的にプロセッサ数に比例して高速化します。
Q: オーバーヘッドを考慮しない理由は何ですか?
A: 問題文で明示されているため、理論値の計算に集中し、基本的な理解を問うためです。
Q: 並列化率が低いと高速化率はどう影響しますか?
A: 並列化率が低いと、並列処理の効果が小さくなり、プロセッサ数を増やしても高速化率はあまり向上しません。

関連キーワード: Amdahlの法則, 並列処理, 高速化率, マルチプロセッサ, 並列化率, 性能評価
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ