SC Workbook
科目 A-1 · コンピュータシステム

アムダールの法則

あるプログラムの処理時間のうち 80% は並列化が可能で,残りの 20% は並列化できない。このプログラムを 4 台のプロセッサで並列に実行したとき,1 台で実行した場合に比べて処理速度は何倍になるか。ここで,並列化可能な部分の処理時間はプロセッサの台数に反比例して短縮され,並列化に伴うオーバヘッドは無視する。

  1. ア2.5
  2. イ3.2
  3. ウ4.0
  4. エ5.0
正解と解説を見る

正解 ア

この問題の基礎知識

  • アムダールの法則では,並列化可能な割合を P,プロセッサ数を n とすると,処理時間は 1 台のときの (1−P)+P÷n 倍になる。
  • 速度向上率は,並列化後の処理時間の比の逆数,すなわち 1÷((1−P)+P÷n) で求める。
  • 並列化できない部分の処理時間は台数を増やしても短縮されないので,プロセッサをいくら増やしても速度向上率は 1÷(1−P) を超えない。
ア2.5正解

アムダールの法則により,処理時間は 0.2+0.8÷4=0.4 となる。速度向上率はその逆数 1÷0.4=2.5 倍である。

イ3.2

台数 4 に並列化可能な割合 0.8 を掛けた値であり,並列化できない 20% の部分の処理時間が短縮されないことを正しく反映していない。

ウ4.0

プログラム全体が並列化可能な場合の値である。20% の部分は並列化できないため,台数どおりの 4 倍にはならない。

エ5.0

プロセッサを無限に増やしたときの上限値 1÷0.2 である。4 台の場合は並列化可能部分の処理時間が 0.2 残るので,これより小さくなる。

検証用の出典出典照合済み
G. M. Amdahl, Validity of the Single Processor Approach to Achieving Large Scale Computing Capabilities (1967)
照合の根拠(1 件)

計算の検算: 問題文の前提(並列化部分は台数に反比例,オーバヘッド無視)から処理時間=0.2+0.8/4=0.4,速度向上=1/0.4=2.5 倍。イ 3.2=4×0.8,ウ 4.0 は全体が並列化可能な場合,エ 5.0=1/0.2 は台数無限大の上限。前提が問題文で定義されている算術のため checked とした

問題 ID A1-CMP-0101 · AI 作成のオリジナル問題 · 正解と各選択肢の根拠を出典の原文で確認しています。 照合日 2026-11-07

非公式の学習用アプリです(IPA とは関係ありません)。問題はすべて AI が作成したオリジナルで、誤りを含む場合があります。