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

HLRC

  • Home-based LRC
    • A process performing acquire obtains write notices from previous releaser
    • But on getting a page fault it asks the home node to send the entire page (of course, with already merged diffs)
    • Note that this protocol not only provides space advantage, but also leads to two-hop page transfer from home to acquirer (as opposed to multiple two hops corresponding to multiple previous writers)
    • Also, home node never suffers from page fault; here also you see a notion of local vs. remote access faults
    • However, here the whole page (as opposed to diffs) is communicated every time from the home leading to wastage of BW

 

Twin and diff overhead

  • Diff processing is expensive
    • Twin creation, diff computation and diff application take up precious CPU cycles (but still faster than network)
    • Some hardware support (especially for fine-grain write propagation) in NI would definitely help
    • Writes can be detected by snooping the memory bus if the caches are write-through
    • Otherwise, every write can be instrumented in software
    • Thus writes can be automatically propagated to home
    • Problem is all writes are propagated wasting BW
    • All-software approach to avoid diff is also proposed: maintain a dirty bit in software per memory block or memory word; dirty bit is cleared at synchronization points and only the words with dirty bits set are propagated to acquirer