この記事は(検証可能)な(参考文献や出典)が全く示されていないか、不十分です。(2011年3月) |
分散共有メモリ(ぶんさんきょうゆうメモリ、英: distributed shared memory, DSM)は、クラスターの各ノードが大規模共有メモリにアクセスすると同時に、各ノード毎の非共有メモリがある程度存在するような実装の種類である。ソフトウェアおよびハードウェアにより実装される。
ソフトウェアDSMシステムは、OS内で実装する場合と、プログラミングライブラリで実装する場合がある。OSでのソフトウェアDSMシステム実装は、仮想記憶アーキテクチャの拡張と見なすことができる。そのようなシステムは開発者から見て透過的であり、その基盤となっている(分散メモリ)はユーザーからは完全に隠蔽されている。一方、ライブラリあるいは言語レベルで実装されたソフトウェアDSMシステムの場合、透過的ではなく、プログラミング時に通常とは異なる書き方をしなければならない。しかし、後者の実装の方が移植性が高いので、様々なプラットフォームを混在可能になる。
ソフトウェアDSMシステムは、共有メモリ領域を構成する柔軟性でも様々なものがある。ページベースの手法では、共有メモリを固定サイズのページ単位に分割して使用する。一方オブジェクトベースの手法では、様々な大きさの何らかの共有オブジェクトを格納する抽象化された空間として共有メモリを分割して使用する。他にもタプルスペースを使った実装もあり、タプル単位で共有を行う。
共有メモリアーキテクチャは、メモリを各ノード分配された共有部分とメインメモリに分割する場合もあるし、全メモリをノード間で分配する場合もある。(メモリ一貫性モデル)にしたがって選ばれたコヒーレンシプロトコルがメモリの一貫性を保つ。
具体例:
- (DIPC) - DIPC
- (Kerrighed) - Kerrighed
- (MOSIX)
- (OpenSSI)
- (TreadMarks) - TreadMarks
関連事項
- イベンチュアル・コンシステンシー
- (分散メモリ)
- 一貫性モデル - ((並列計算#一貫性モデル))
- (仮想化メモリ)
- (シングルシステムイメージ)(単一システムイメージ)
外部リンク
- Distributed Shared Memory Home Pages
- JSTM - Object Replication using an extended Software Transactional Memory