分散共有メモリ

分散共有メモリ（ぶんさんきょうゆうメモリ、）は、クラスターの各ノードが大規模共有メモリにアクセスすると同時に、各ノード毎の非共有メモリがある程度存在するような実装の種類である。ソフトウェアおよびハードウェアにより実装される。

ソフトウェアDSMシステムは、OS内で実装する場合と、プログラミングライブラリで実装する場合がある。OSでのソフトウェアDSMシステム実装は、仮想記憶アーキテクチャの拡張と見なすことができる。そのようなシステムは開発者から見て透過的であり、その基盤となっているはユーザーからは完全に隠蔽されている。一方、ライブラリあるいは言語レベルで実装されたソフトウェアDSMシステムの場合、透過的ではなく、プログラミング時に通常とは異なる書き方をしなければならない。しかし、後者の実装の方が移植性が高いので、様々なプラットフォームを混在可能になる。

ソフトウェアDSMシステムは、共有メモリ領域を構成する柔軟性でも様々なものがある。ページベースの手法では、共有メモリを固定サイズのページ単位に分割して使用する。一方オブジェクトベースの手法では、様々な大きさの何らかの共有オブジェクトを格納する抽象化された空間として共有メモリを分割して使用する。他にもタプルスペースを使った実装もあり、タプル単位で共有を行う。

共有メモリアーキテクチャは、メモリを各ノード分配された共有部分とメインメモリに分割する場合もあるし、全メモリをノード間で分配する場合もある。メモリ一貫性モデルにしたがって選ばれたコヒーレンシプロトコルがメモリの一貫性を保つ。

具体例:
 - DIPC
 - Kerrighed

 - TreadMarks

関連事項 

 イベンチュアル・コンシステンシー

 - （並列計算#一貫性モデル）

（単一システムイメージ）

外部リンク 
 Distributed Shared Memory Home Pages
 JSTM - Object Replication using an extended Software Transactional Memory

分散処理