Module 16: "Software Distributed Shared Memory Multiprocessors"
  Lecture 36: "Software Distributed Shared Memory Multiprocessors"
 

Twin and diff

  • Fits well with ERC
    • Can free storage of twin at release
    • In LRC must hold back diff until requested, and until it is guaranteed that no process will request in future
    • Garbage collection becomes necessary in LRC forcing diffs to be propagated; this is very complex due to the fact that a page may have distributed diffs across many nodes and all of them must be collected before propagating
    • Solution: home-based LRC (HLRC)
    • Let every page have a home node (may be necessary anyway even in standard LRC to find out writers/readers unless the OS kernel has a shared page table; in a commodity cluster usually each node has a separate OS which is much simpler than a distributed NUMA OS)
    • At release send the diff to the home node which merges the received diffs into the “master copy”