メモリと通信
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/07/25 13:20 UTC 版)
並列コンピュータの主記憶は、共有メモリ型(全プロセッサが単一の物理アドレス空間を共有する)と分散メモリ型(各プロセッサがローカルな独自の物理アドレス空間を持つ)に分けられる。分散メモリは、メモリが論理的に分散しているためにそのように呼ばれるが、実際には物理的にも分散していることが多い。分散共有メモリはこの2つの方式を組み合わせたものであり、各プロセッサはローカルなメモリとローカルでないメモリの両方にアクセスできる。この場合、ローカルなメモリへのアクセスはローカルでないメモリへのアクセスよりも一般に高速である。 全主記憶に同じレイテンシおよび帯域幅でアクセスできるコンピュータアーキテクチャを UMA (Uniform Memory Access) と呼ぶ。これは共有メモリシステム(メモリが物理的に分散していない場合)しか実現できない。それ以外のアーキテクチャはNUMA (Non-Uniform Memory Access) と呼ぶ。分散メモリシステムはNUMAである。 コンピュータにはキャッシュメモリが使われていることが多く、(物理的にも論理的にも)プロセッサの近くに高速かつ小容量のメモリを配置し、主記憶の内容のコピーを一時的に保持する。共有メモリ型の並列コンピュータでは、主記憶上の同じアドレスの内容のコピーが複数のキャッシュメモリ上に存在する可能性があり、その内容が食い違うとプログラムの実行に支障が発生する。そのような問題への対処としてキャッシュコヒーレンシシステムがあり、プロセッサが常に最新の内容を得られるようキャッシュの内容を制御する。よく使われる方式としては、バススヌーピングがある。大型かつ高性能のキャッシュコヒーレンシシステムの設計は、コンピュータアーキテクチャの中でも非常に難しい問題である。そのため、共有メモリ型のシステムは分散メモリ型ほどスケーラブルではない。 プロセッサ同士またはプロセッサとメモリの通信のハードウェア実装方式は様々であり、マルチポート型の共有メモリ、クロスバースイッチ、共有バス、スター型、リング型、ツリー型、ハイパーキューブ型、ファット・ハイパーキューブ型(ハイパーキューブの頂点に複数のノードが接続される形態)、メッシュ型などの様々なネットワーク構成のインターコネクト・ネットワークがある。 インターコネクト・ネットワークを使った並列コンピュータは、直接接続されていないノード間でメッセージパッシングできるように何らかのルーティング機構が必要となる。大規模なマルチプロセッサ機では、プロセッサ間の通信媒体は複数の階層を構成することもある。
※この「メモリと通信」の解説は、「並列計算」の解説の一部です。
「メモリと通信」を含む「並列計算」の記事については、「並列計算」の概要を参照ください。
- メモリと通信のページへのリンク