応用情報技術者 2019年 秋期 午前2 問15
問題文
1件のデータを処理する際に、読取りには 40ミリ秒、CPU処理には30ミリ秒、書込みには50ミリ秒掛かるプログラムがある。このプログラムで、n件目の書込みと並行して n+1件目のCPU処理とn+2件目の読取りを実行すると、1分当たりの最大データ処理件数は幾つか。ここで、OSのオーバヘッドは考慮しないものとする。
選択肢
ア:500
イ:666
ウ:750
エ:1,200(正解)
🔒 解説は解答すると表示されます
パイプライン処理のスループット【午前2解説】
正解の理由
各データについて「読取り(40ms)」「CPU処理(30ms)」「書込み(50ms)」の3段があるとき、パイプライン化すると各段が別のデータを同時に処理できるため、1件あたりの「レイテンシ(遅延)」の合計ではなく、パイプライン全体の処理速度(スループット)は最も時間の掛かる段が決めます。ここでは書込みが最も遅く50msなので、1件完了するまでに要する平均間隔は です。したがって1分()あたりの処理件数は
となり、選択肢のうち エ が正解です。
解法ステップ
- 各段の処理時間を確認:読取り 40ms、CPU 30ms、書込み 50ms。
- パイプライン運用では各段が同時並行に動くため、スループットは各段のうち最大時間に制約されることを理解する。
- ボトルネック(最大値)を求める:.
- 1分(60,000ms)をこの1件当たり時間で割る:。
(別表現)1秒あたりは 件、1分では 件。
選択肢別の誤答解説
- ア: 500
- 誤りの元:各段の処理時間を直列に足して「1件の総遅延=40+30+50=120ms」として計算している。これだと となるが、これはパイプラインの重複処理(並列性)を無視した誤りである。総遅延は1件の完了に要する時間であり、スループット(継続的に完了する件数)とは異なる。
- イ: 666
- 誤りの元:CPU処理が完全に他と重なり、読取りと書込みだけが直列に並ぶと誤解して とし、 とする考え。実際には各段はそれぞれ独立に別データを処理するため、どの段が最も遅いか(=ボトルネック)を見なければならない。ここでは書込み50msが最長であり、90msでの計算は過剰な制約を課している。
- ウ: 750
- 誤りの元:読取りが書込みと重なり、残った CPU と書込みを直列と見なして とし とする考え。これも段同士の同時並行性を正しく扱っていない。実際は「最長の単一段」が継続的スループットを決めるため、50msを使うのが正しい。
よくある誤解
- 遅延(レイテンシ)とスループットを混同する。1件の総遅延が長くても、段ごとに別データを同時処理できればスループットは向上する。例えば総遅延が120msでも、ボトルネックが50msなら1分で1200件処理できる。
- 単位変換や例示での数値ミス。例えば「1秒=1000ms」を使う場面で不適切な分母(例:120ms)を持ち出すと、 件/秒となり、分換算で 件/分と誤結論するが、これは総遅延を誤ってスループットに使った結果である。正しくは1秒あたり 件、1分では 件である。
補足コラム
- パイプラインの「立ち上がり(fill)」と「片付け(drain)」では一時的にスループットが低下しますが、問題のように「長時間運転での最大(定常状態)スループット」を問う場合はボトルネック段の時間だけで評価できます。
- 一般式:m段のパイプラインで段iの時間を とすると、理想的な定常スループットは (時間当たり)。分換算なら 。
FAQ
Q1: なぜ「合計時間」を使わないのですか?
A1: 合計時間は1件が最初から最後まで完了するまでの遅延(レイテンシ)であり、各段が別データを処理できるパイプラインでは「各件が連続して完了する間隔」は最も遅い段の時間で決まります。したがってスループット評価には合計時間は使わないことが多いです。
A1: 合計時間は1件が最初から最後まで完了するまでの遅延(レイテンシ)であり、各段が別データを処理できるパイプラインでは「各件が連続して完了する間隔」は最も遅い段の時間で決まります。したがってスループット評価には合計時間は使わないことが多いです。
Q2: もし書込みが30msでCPUが50msだったら?
A2: その場合ボトルネックはCPU(50ms)になり、1分あたりは同様に 件となります。常に最大の段時間を使います。
A2: その場合ボトルネックはCPU(50ms)になり、1分あたりは同様に 件となります。常に最大の段時間を使います。
Q3: 実機では OS のオーバヘッドや同期コストがあるとどうなる?
A3: 実運用ではオーバヘッドにより理想値より小さくなります。問題文のようにオーバヘッド無視で理論上の最大値を求める設問では、上の計算を適用します。
A3: 実運用ではオーバヘッドにより理想値より小さくなります。問題文のようにオーバヘッド無視で理論上の最大値を求める設問では、上の計算を適用します。
関連キーワード: パイプライン, スループット, ボトルネック, レイテンシ, 並列処理

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

