マルチプロセッシング:仕組み、種類、歴史、利点と課題
マルチプロセッシングは、1台のコンピュータ内で2基以上のプロセッサを協調動作させ、タスクを並行して実行する方式です。SMP・非対称方式、歴史、利点、実用上の課題を解説します。
マルチプロセッシングとは、1台のコンピュータで複数の中央処理装置(CPU)を用い、プログラムを実行する方式である。このようなシステムでは、複数のプロセッサが作業を分担する。プロセッサは同一設計の場合も異なる設計の場合もあり、メモリを共有することも、明示的なメッセージによって通信することもある。この用語には、物理的に複数のCPUソケットを備える構成と、現代のマルチコアチップの両方が含まれる。
特性と構成
主要な設計上の選択肢には、CPUがメモリおよび入出力(I/O)へアクセスする方法がある。対称型マルチプロセッシング(SMP)では、すべてのプロセッサは対等であり、オペレーティングシステムはそれらを一様に扱う。ほかには、1つのプロセッサがOSの処理を担い、他のプロセッサがユーザーコードを実行する非対称型マルチプロセッシングや、プロセッサによってメモリ待ち時間が異なる非一様メモリアクセス(NUMA)がある。マルチプロセッシングシステムは、プロセッサ間通信、キャッシュ、スケジューラ、割り込みおよび整合性を支えるハードウェアに依存する。
歴史と発展
マルチプロセッシングは、1台の機械にCPUを追加して処理能力を高めようとした初期の試みから発展した。数十年を経て、大型メインフレームやスーパーコンピュータから、汎用サーバーや個人向け機器へと広がった。これはチップメーカーが複数のコアを統合するようになったためである。OS、コンパイラ、ハードウェアの整合性プロトコルの進歩により、並列実行は次第に実用的になった。
用途と重要性
マルチプロセッシングは、性能、応答性、信頼性を向上させるために広く用いられる。代表的な用途には、サーバーのワークロード、科学計算、仮想化、リアルタイム組込みシステム、デスクトップでのマルチタスクがある。開発者はしばしばマルチスレッドプログラムを作成し、異なるスレッドを別々のプロセッサで動作させる。これにより並列性が高まり、多くのタスクで実行に要する実時間を短縮できる。
利点と課題
- 利点:高い処理能力、より効率的な利用、耐障害性、応答性の向上。
- 課題:同期、競合状態、デッドロック、メモリ一貫性、拡張可能な負荷分散。
マルチプロセッシングは分散コンピューティングと区別する必要がある。前者は単一のシステムイメージを共有し、多くの場合は共有メモリを用いるのに対し、後者はネットワークで接続された複数の機械にまたがって動作する。プロセッサ技術の概要については、中央処理装置に関する資料を参照。
関連項目
著者
AlegsaOnline.com マルチプロセッシング:仕組み、種類、歴史、利点と課題 Leandro Alegsa
URL: https://ja.alegsaonline.com/art/67487