ITパスポート 2014年 秋期 問53
問題文
マルチコアプロセッサに関する記述のうち、適切なものはどれか。
選択肢
ア:各コアでそれぞれ別の処理を同時に実行することによって、システム全体の処理能力の向上を図る。(正解)
イ:複数のコアで同じ処理を実行することによって、処理結果の信頼性の向上を図る。
ウ:複数のコアはハードウェアだけによって制御され、OSに特別な機能は必要ない。
エ:プロセッサの処理能力はコアの数だけに依存し、クロック周波数には依存しない。
🔒 解説は解答すると表示されます
マルチコアプロセッサに関する記述のうち、適切なものはどれか。【ITパスポート 解説】
正解の理由
正しいのは ア です。マルチコアプロセッサとは、1つのプロセッサ(プロセッサ:計算や命令の実行を行う装置)の中に「複数のコア(Core:CPU内部の独立した処理ユニット)」がある構成を指します。各コアは独立して命令を実行できます。したがって、別々の処理(例えば同時に複数のアプリを動かす、あるいは大きな計算を分割して並行に処理する)を同時に行わせることで、システム全体の処理能力を向上させることができます。これが ア の記述が正しい理由です。
解法ステップ
- 問題文を読み、「マルチコアプロセッサ」が何かを確認します。ここでは「複数のコアを持つプロセッサ」と理解します。
- 各選択肢がその性質と合致するかを考えます。
- 並列に「別の処理」を実行できるか(性能向上につながるか)→合致すれば正解候補。
- 同じ処理を複数コアで同時に行う=冗長化や信頼性向上の説明か→通常のマルチコアの主目的ではない。
- OS(Operating System:基本ソフト)は必要か→実際にはスケジューリングなどで関与する。
- 処理能力はコア数だけに依存するか→クロック周波数やソフトの並列化度合いも影響する。
- 上の照合で、最も適切なのが ア であると判断します。
選択肢別の誤答解説
-
ア: 各コアでそれぞれ別の処理を同時に実行することによって、システム全体の処理能力の向上を図る。
→ 正しい。マルチコアの基本的な目的は並列処理(複数の作業を同時に行うこと)による性能向上です。 -
イ: 複数のコアで同じ処理を実行することによって、処理結果の信頼性の向上を図る。
→ 誤り。複数コアで同じ処理を繰り返すことで誤り検出や高信頼化を図る冗長化(フォールトトレランス)は理論的には可能ですが、マルチコアの一般的な目的や設計思想ではありません。通常は「性能向上(スループットや応答性の改善)」が主目的です。 -
ウ: 複数のコアはハードウェアだけによって制御され、OSに特別な機能は必要ない。
→ 誤り。OS(Operating System:基本ソフト)にはスレッドやプロセスを各コアに割り当てる「スケジューラ(scheduler)」などの機能が必要です。アプリケーションが並列処理できるようにスレッドを生成したり、OSがコア間で負荷を分散したりします。したがってOSの役割は重要です。 -
エ: プロセッサの処理能力はコアの数だけに依存し、クロック周波数には依存しない。
→ 誤り。処理能力はコア数だけで決まるものではありません。コアあたりの処理速度を示すクロック周波数(クロック周波数:CPUが1秒間に打つ信号の回数。単位はHz)が高ければ単独の処理が速くなります。また、プログラムの並列化度合い(並列にできる割合)やメモリ性能も影響します。
よくある誤解
- 「コアが増えれば必ず速くなる」
- 実際にはプログラムが並列化できる部分だけが速くなります。並列化できない処理は変わらないため、効果は限定的です(次の補足コラムの式を参照)。
- 「OSは関係ない。ハードだけで勝手に並列化される」
- 実行する仕事を分けて各コアに渡すのはOSやアプリ(スレッド管理)の役割です。ハードだけで全自動にはなりません。
- 「コア数がすべてで、クロック周波数は無視できる」
- クロック周波数が高いほど単一スレッドの処理は速くなります。用途によってはコア数より周波数が重要です(例:単一の重い処理を短時間で終えたい場合)。
補足コラム
- 並列化の効果を示す有名な考え方に「Amdahlの法則」があります。並列化できる割合を 、コア数を とすると、理想的な速度向上 S は次のようになります。
例:処理の80%が並列化可能()でコア数が4()なら、
完全に並列化できても()理想的にN倍の速度になりますが、現実は並列化できない部分が必ずあり、無限にコアを増やしても限界があります。 - 実用例:ウェブブラウザは、タブごとに別スレッドで処理したり、レンダリングとJavaScript実行を分けたりします。これによりマルチコアの利点が生きます。
FAQ
Q1: どんなソフトでもマルチコアの恩恵を受けますか?
A1: いいえ。ソフトが並列処理を行うように作られている必要があります。古い単純なプログラムは1つのスレッドだけで動き、コアが増えても効果は出にくいです。
A1: いいえ。ソフトが並列処理を行うように作られている必要があります。古い単純なプログラムは1つのスレッドだけで動き、コアが増えても効果は出にくいです。
Q2: マルチコアは信頼性(故障しにくさ)を高めますか?
A2: 通常は性能向上が目的です。信頼性を高めるためには冗長化(同じ処理を別の装置で繰り返す)など別の設計が必要です。
A2: 通常は性能向上が目的です。信頼性を高めるためには冗長化(同じ処理を別の装置で繰り返す)など別の設計が必要です。
Q3: コア数とクロック周波数、どちらが重要ですか?
A3: 用途によります。複数の処理を同時に行うサーバ処理や動画変換などはコア数が重要です。逆に単一の重い計算を素早く終える必要がある処理ではクロック周波数が重要です。
A3: 用途によります。複数の処理を同時に行うサーバ処理や動画変換などはコア数が重要です。逆に単一の重い計算を素早く終える必要がある処理ではクロック周波数が重要です。
Q4: OSはどのようにコアを使いますか?
A4: OSのスケジューラが、実行すべきスレッドやプロセスをコアに割り当てます。必要に応じてスレッドを別コアに移動させて負荷を均等化します。
A4: OSのスケジューラが、実行すべきスレッドやプロセスをコアに割り当てます。必要に応じてスレッドを別コアに移動させて負荷を均等化します。
関連キーワード: マルチコア, コア数, 並列処理, スレッド, クロック周波数, Amdahlの法則, スケジューリング

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

