Page 1 Page 1
Distributed Shared Memory
Paul Krzyzanowski pxk@cs.rutgers.edu
Distributed Systems
Except as otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution 2.5 License.
Distributed Systems Distributed Shared Memory Paul Krzyzanowski - - PowerPoint PPT Presentation
Distributed Systems Distributed Shared Memory Paul Krzyzanowski pxk@cs.rutgers.edu Except as otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution 2.5 License. Page 1 Page 1 Motivation SMP
Page 1 Page 1
Paul Krzyzanowski pxk@cs.rutgers.edu
Except as otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution 2.5 License.
Page 2
Page 3
Page 4
Page 5
Page 6
Page 7
Page 8
Page Location 0000 P3 0004 P1 0008 P1 000C P2 … …
Page Location 0002 P3 0006 P1 000A P0 000E
…
Page Location 0003 P3 0007 P1 000B P2 000F
…
Page Location 0001 P3 0005 P1 0009 P0 000D P2 … …
Page 9
– Cost of migration amortized over many localized accesses
– Increases chances that multiple objects reside in one page
(page data ping-pongs between multiple machines)
(unrelated data happens to live on the same page, resulting in a need for the page to be shared)
Page 10
Page 11
Page 12
(if exists)
Page 13
Page 14
– Directory with single node per page not enough – Keep track of copyset
– Directory adds requestor to copyset – Page owner sends page contents to requestor
– Directory issues invalidation requests to all nodes in copyset and wait for acknowledgements
Page 15
Page 16
Page 17
Page 18
Page 19
Page 20
Page 21
Page 22
– Register allocation, code motion, loop transformation, …
– Pipelining, multiple issue, VLIW, …
Page 23
to all cached copies
Page 24
Page 25
Page 26
Page 27
Page 28
Page 29
Page 30
Obtain valid copies of pages
Send invalidations or updates for shared pages that were modified locally to nodes that have copies.
Page 31
– Sending invalidations to copyset nodes – And waiting for all to acknowledge
– Send invalidation only to directory
– Check with directory to see whether it needs a new copy
Page 32
– Synchronizes all data – No relation between lock and data
– Each variable or group of variables can have a synchronization variable – Propagate only writes performed in those sections – Cannot rely on OS and MMU anymore
Page 34 Page 34