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