読み方:みむど《multiple instruction/multiple data》複数のマイクロプロセッサーを搭載した並列コンピューターにおいて、複数のマイクロプロセッサーが異なるデータを並行して処理する方式のこと。Weblio国語辞典では「MIMD」の意味や使い方、用例、類似表現などを解説しています。">

MIMDとは何? わかりやすく解説 Weblio辞書 (original) (raw)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/04/17 06:33 UTC 版)

ナビゲーションに移動 検索に移動

MIMD(Multiple Instruction stream, Multiple Data stream)とは、コンピューティングにおいて並列性を達成するのに使われる技法の一種。MIMD型のマシンは、独立して機能する複数のプロセッサを持つ。任意の時点で、異なるプロセッサは異なる命令を使って異なるデータを処理している。MIMDアーキテクチャは様々な分野で応用されており、CAD/CAMシミュレーションモデリング、通信スイッチなどに使われている。MIMD型マシンは、共有メモリ型と分散メモリ型に分類される。この分類は、MIMD型マシンのプロセッサがどのようにメモリにアクセスするかに着目したものである。共有メモリ型マシンは、単純なバスを使ったものや、階層型のバスを使ったものがある。分散メモリ型マシンは、ハイパーキューブ型やメッシュ型の相互接続ネットワークを使うことが多い。

目次

共有メモリ型

バス方式

メモリとプロセッサ群がバスに接続されたMIMDマシン。最も単純な形態では、単一のバスに全てが接続される。バスがボトルネックとなりやすいため、小規模なマシンでよく使われている。対称型マルチプロセッシングの多くはこの方式である。

階層型バス方式

バス方式のMIMDマシンを上位のバスで相互接続したMIMDマシン。下位のバス内でのメモリアクセスと、上位のバスを経由したメモリアクセスで、アクセスコストが異なるNUMA型である。NUMAの中でも比較的小規模なマシンに多い。

分散メモリ型

各プロセッサにローカルなメモリが個別に配置されたMIMDマシン。データを共有するには、メッセージとしてプロセッサ間でやりとりする必要がある。共有メモリがないため、メモリアクセスの衝突は問題とはならない。多数のプロセッサを1対1に接続するのはコストがかかりすぎるため、直接接続するプロセッサ数を制限するのが一般的である。しかし、その場合に直接接続していないプロセッサ間で通信をするとき、間にあってメッセージを転送するプロセッサ数が多いほど転送に時間がかかることになる。そのため、最大転送時間を考慮したネットワーク設計が重要となる。また、バス方式の共有メモリ型MIMDマシンを最小単位としてネットワークを形成する場合もある。

ハイパーキューブ型ネットワーク

超立方体の各頂点にプロセッサとメモリを配置する形態。2n個のプロセッサ(ノード)があるとき、最も遠いプロセッサまでに経由する辺の数は n 本となる。また、2n個のノードがあるとき、直接接続するノード数も n 個となる。例えば、16ノードであれば1つのノードから4本の通信路が出ていて、最も遠いノードまで3個のノードを経由する。具体例としてはnCUBEのマシンなどがある。ハイパーキューブの欠点としては、ノード数が常に 2n 個でなければならない点である(そうでないと転送できない経路が出てくる)。従って、アプリケーションが実際に必要とするノード数より多めにノードを用意しなければならない。

メッシュ型ネットワーク

2次元の格子状にプロセッサとメモリを配置する形態。各プロセッサは常に4つの近傍のプロセッサと相互接続される。格子の端は相互に接続され、全体としてトーラス型とされることが多い。ハイパーキューブに比較すると、プロセッサ数が任意である点が優れているが、最も遠いプロセッサとの距離はハイパーキューブよりも大きい。

関連項目

CPUテクノロジー
アーキテクチャ ISA: CISC EDGE EPIC MISC(英語版) OISC(英語版RISC VLIW ZISC(英語版ハーバード・アーキテクチャ ノイマン型 4ビット 8ビット 12ビット 16ビット 18ビット 24ビット 31ビット 32ビット 36ビット 48ビット 60ビット 64ビット 128ビット
並列処理 パイプライン 命令パイプライン イン・オーダー&アウト・オブ・オーダー レジスタ・リネーミング 投機的実行 レベル ビット 命令 スーパースカラー データ タスク スレッド マルチスレッディング 同時マルチスレッディング ハイパースレッディング スーパースレッディング(英語版フリンの分類 SISD SIMD MISD MIMD
タイプ マイクロプロセッサ DSP マイクロコントローラ System-on-a-chip ベクトルプロセッサ
コンポーネント 演算装置 Back-side bus マルチプレクサ デマルチプレクサ レジスタ MMU TLB キャッシュ レジスタファイル マイクロコード 制御装置 CPUクロック
電源管理 APM ACPI (states) Dynamic frequency scaling Dynamic voltage scaling Clock gating
並列計算
総論 クラウドコンピューティング グリッド・コンピューティング 高性能計算 コンピュータ・クラスター 分散コンピューティング
並列レベル タスク データ ビット 命令
スレッド スーパースレッディング(英語版ハイパースレッディング
理論 アムダールの法則 グスタフソンの法則 コスト効率性(英語版) Karp-Flatt metric(英語版) Parallel slowdown(英語版) Speedup(英語版
要素 スレッド ファイバー プロセス PRAM Instruction window(英語版
調整 キャッシュコヒーレンシ 同期 バリア マルチスレッディング マルチプロセッシング メモリコヒーレンス Cache invalidation(英語版) Application checkpointing(英語版
プログラミング スレッド (コンピュータ) 並列プログラミングモデル Implicit parallelism(英語版) Explicit parallelism(英語版並行性 フリンの分類 SISD SIMD MISD MIMD SPMD(英語版Lock-freeとWait-freeアルゴリズム
ハードウェア スーパーコンピュータ スーパースカラー ベクトル計算機 マルチプロセッシング対称型 非対称型 マルチコア メモリNUMA en:COMA en:分散型 共有型 分散共有型 SMT MPP Beowulf
API Ateji PX(英語版Boostスレッド C++ AMP Charm++(英語版) Cilk(英語版) Coarray Fortran(英語版CUDA Dryad(英語版) Global Arrays(英語版) Intel Cilk Plus(英語版Intel Threading Building Blocks MPI OpenACC OpenCL OpenHMPP(英語版OpenMP PVM POSIXスレッド UPC
問題 en:Embarrassingly parallel en:Grand Challenge en:Software lockout
並行計算 カテゴリ:並行計算 カテゴリ:並列コンピューティング