マルチプロセッシング
[Wikipedia|▼Menu]
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%;font-size:90%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}

この記事は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方
出典検索?: "マルチプロセッシング" ? ニュース ・ 書籍 ・ スカラー ・ CiNii ・ J-STAGE ・ NDL ・ dlib.jp ・ ジャパンサーチ ・ TWL(2023年1月)

マルチプロセッシング(英語: multi processing)とは、(本来は)ひとつのプロセスだけではなく複数の並行プロセスを同一システム内で使用することを意味する。

マルチタスクと同様ひとつのCPUを複数のプロセスが共有することも示すが、ひとつのシステム内の複数のCPUが複数のスレッドを動作させることも意味する。マルチプロセッサと言う場合は一般に後者のみを指す。
マルチプロセッシングの種類
プロセッサの対称性

マルチプロセッシングシステムでは、全CPUが等価の場合といくつかのCPUが特別な用途に使われる場合がある。ハードウェアとオペレーティングシステムの設計によって、システムの対称性の度合いが決定される。例えば、ハードウェアまたはソフトウェアの制限によって1つのCPUだけがすべてのハードウェア割り込みに反応し、他のすべての作業が等しく全CPUに分配される場合もある。また、カーネルモードの実行がひとつのプロセッサに限定される場合もある(指定された特定のプロセッサの場合と、同時に複数のプロセッサでカーネルを実行できない場合がある)。このような制限がある場合、マルチプロセッシングシステムの設計は容易になるが、全CPUが対称に扱われるシステムよりも性能が低下する。

全CPUを等価に扱うシステムは対称型マルチプロセッシング(SMP)システムと呼ばれる。全CPUが等価ではないシステムには、内部資源の分割方式によっていくつかの種類がある。「非対称型マルチプロセッシング(英語版)」(ASMP)、「NUMA」マルチプロセッシング、「コンピュータ・クラスター」などである。非対称型マルチプロセッシングの例としては、IBMOS/360DECVMSがある。
命令とデータの流れ

マルチプロセッシングにおいて、単一システム内の複数のプロセッサ上で、独立した複数の命令列をそれぞれ別の複数のコンテキストに対して実行する場合がある。これをMIMDと呼ぶ。また、同一の命令列を複数のコンテキスト上で並行して実行する場合もある。これをSIMDまたはベクトル計算機と呼ぶ。また、複数の命令列を一つのコンテキストに対して実行するものをMISDと呼ぶ。MISDは一般に冗長化されたフォールトトレラントシステムを意味するが、パイプライン処理ハイパースレッディングを指すこともある。ちなみに、SISDは一般のマルチプロセッシングでないシステムを指す。
プロセッサ結合方式
密結合 (tightly coupled)
密結合マルチプロセッサシステムはバスレベルで結合された複数のCPUを持つ。そのプロセッサ群は共通の共有メモリにアクセスする(SMP)。あるいはメモリにローカルと共有の二階層を設ける(NUMA)。IBM p690 Regattaは
ハイエンドのSMPシステムの一例である。チップ上のマルチプロセッサであるマルチコア処理では、ひとつのチップ上に複数のプロセッサが実装されており、最も進んだ形式の密結合マルチプロセッシングと言う事ができる。メインフレームのマルチプロセッサシステムは密結合であることが多い。
疎結合 (loosely coupled)
疎結合マルチプロセッサシステム(コンピュータ・クラスターとも呼ばれる)は複数の独立したコンピュータを高速な通信システム(たとえばギガビット・イーサネットなど)で結合したものである。LinuxのBeowulfSCoreによるクラスターは疎結合システムの例である。

歴史的には、密結合システムの方が高性能で物理的にも小さかったが、高価だった。最近では普通のコンピュータが非常に小型化されてきたため、疎結合システムを安価に構築できるようになった。さらにマルチコア化によって普通のパソコンでも密結合システムが一般的になり、プロセッサ結合方式は密結合と疎結合が同時に存在するより複雑な系へと発展しメモリ局在性の管理とメッセージパッシングシステムの最適化はより重大な課題となっている。
ソフトウェア実装上の問題
MIMD詳細は「MIMD」を参照

MIMDマルチプロセッシング・アーキテクチャは、個々に独立した様々なタスクを実行するのに適しており、それぞれが異なるデータセットに対して異なる命令を並行して実行する。このような用途はニーズがあり、実装も比較的容易なので、MIMD はマルチプロセッサの大半を占めている。

処理は複数のスレッドに分割され、それぞれがハード的なプロセッサ状態を持つ。これらスレッドはひとつのプロセス内に存在する場合もあるし、別々のプロセスに属していることもある。複数のスレッドがディスパッチされるのを待っている状態となるため、このアーキテクチャはハード資源の利用効率が高い。

MIMD ではデッドロック問題や資源の競合が発生する。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:39 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef