以下の内容はhttps://www.weblio.jp/content/MIMDより取得しました。


デジタル大辞泉デジタル大辞泉

ミムド【MIMD】


ウィキペディアウィキペディア

MIMD

出典: フリー百科事典『ウィキペディア(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つの近傍のプロセッサと相互接続される。格子の端は相互に接続され、全体としてトーラス型とされることが多い。ハイパーキューブに比較すると、プロセッサ数が任意である点が優れているが、最も遠いプロセッサとの距離はハイパーキューブよりも大きい。

関連項目


ウィキペディアウィキペディア

MIMD

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

マルチプロセッシング」の記事における「MIMD」の解説

詳細は「MIMD」を参照 MIMDマルチプロセッシング・アーキテクチャは、個々独立した様々なタスク実行するのに適しており、それぞれ異なデータセットに対して異な命令並行して実行するこのような用途ニーズがあり、実装比較容易なので、MIMD はマルチプロセッサ大半占めている。 処理は複数スレッド分割されそれぞれハード的なプロセッサ状態を持つ。これらスレッドはひとつのプロセス内に存在する場合もあるし、別々のプロセス属していることもある。複数スレッドディスパッチされるの待っている態となるため、このアーキテクチャハード資源利用効率が高い。 MIMD ではデッドロック問題資源競合発生する。しかしスレッド資源アクセスするかどうか予測できないため、競合効率的に管理するのは難しい。MIMD ではオペレーティングシステム特別なコーディングを必要とする。アプリケーションマルチスレッド化されない限りそのような配慮は必要としない。MIMD用のオペレーティングシステムは、シングルスレッドアプリケーションにとっては透過的であることが多い(アプリケーション側が複数プロセススケジューリングなどを独自に行ったりする場合はその限りではない)。システムソフトウェアもユーザーソフトウェアも「セマフォ」(または「ロック」あるいは「ゲート」とも呼ばれる)のようなソフトウェア排他制御機構使って、他のスレッドが同じデータアクセスないよう防止するこのようなロック処理はコード複雑性増し性能低下させ、評価必要性を増すが、マルチプロセッシング利点否定するほどの問題ではない。 同様な競合は、CPU間でハードレベルでも発生し(例えば、キャッシュ競合破損など)、それらはハードレベルまたはハードとソフトの共同解決しなければならない(例えば、キャッシュ・クリア命令)。マルチプロセッシング実装する場合性能上のためにキャッシュという高速メモリ僅かにプロセッサ毎に持ち、より低速メモリ本体へのアクセス擬似的高速化している。各プロセッサ個別情報を持つ事になり、この情報プロセッサ単位書き換え使用する事になる。本来、メモリ上の情報共有しているはずなのに、あるプロセッサキャッシュ上の変更(メモリ書き込み)を他のプロセッサキャッシュ通知しないデータ共有できなくなってしまう。 この問題プログラミング技法何とかなるではなくハードウェア何らかのキャッシュ同期機構設けなければならないキャッシュ同期を可能とする解決法はいくつかあって非常に複雑である。以下に例を挙げるメモリへの書き込みの際にキャッシュ書き込む同時にバスにそれをブロードキャストする。ただし、アドレスだけでありメモリには書き込まない書き込み行ったプロセッサ以外は、通知されアドレス対応したキャッシュライン自分持っていたら、それを消す。 メモリリードでキャッシュミスが発生したとき、メモリ読みに行くが、それにメモリではなく最新内容持っているプロセッサキャッシュ自動的に応答する。 より簡単な方式として、他のプロセッサ読みに来たキャッシュラインメモリ書き戻し(シュートダウン)し、使用する際にメモリから読ませる手法があるが、性能劣化するいずれにしてもキャッシュ同期させようとするとシングルプロセッサよりもバス使用する頻度多くなるため、バス高性能化システム性能の向上に必要となる。つまり、単一バス多数プロセッサ接続するバスボトルネックとなって性能頭打ちとなる。

※この「MIMD」の解説は、「マルチプロセッシング」の解説の一部です。
「MIMD」を含む「マルチプロセッシング」の記事については、「マルチプロセッシング」の概要を参照ください。

ウィキペディア小見出し辞書の「MIMD」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



固有名詞の分類

並列コンピューティング Streaming SIMD Extensions  メモリ一貫性  MIMD  OpenCL  ハードウェアマルチスレッディング



以上の内容はhttps://www.weblio.jp/content/MIMDより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14