DistOS 2023W 2023-01-25
Jump to navigation
Jump to search
Discussion Questions
- What is the dream of DSM?
- What makes DSM hard?
- Why can't we have a general solution to DSM?
- Why are consistency models so important to DSM?
- What is a coherence policy in DSM?
- Do you think we use DSM today? Why or why not?
- How similar are modern multi-core systems to networked DSM implementations? How are they different?
- What is unclear or confusing about DSM & the readings?
Notes
Lecture 6 --------- Group reports - make sure they are more like meeting minutes, not just summaries of the readings - mention points of confusion, conflicts, questions, in addition to what was in the readings - don't need to name names to protect the guilty - explain the concepts then that are mentioned so the document has utility afterwards (say when studying for the midterm and final) - can use bullet points, but they should be wordy bullet points Discussion questions What is the dream of DSM? - make a bunch of computers behave as if they have one shared pool of memory - doesn't matter where the memory is, it can all be used What makes DSM hard? - networking makes it possible, but... - the memory ISN'T shared, we're simulating sharing - and it is impossible to make the semantics completely identical to shared memory without killing performance - because at the end of the day, each CPU can only access data that is in its own RAM - (so we're always making copies) Why can't we have a general solution to DSM? - in order to maximize performance, we have to fit the architecture to the code's access patterns - if access is perfectly random nothing will work - perfect locality - well, why did you bother with DSM - are we sharing data mostly read only? Or will we need concurrent writes? when are we doing each? Why are consistency models so important to DSM? - what sort of guarantees are we placing on the interactions? - how deterministic do we need things to be? - comes down to what happens when things happen "at the same time" - for correctness, we normally need a deterministic sequential model of execution - but for performance maybe we can relax this What is a coherence policy in DSM? - how do we do updates? - typically involves validation because it is fastest (you don't have a current copy, someone else does, if you need it go ask for it) Do you think we use DSM today? Why or why not? - we generally don't use DSM for sharing memory between multiple nodes/hosts - we'll just do the messaging ourselves, tends to be more efficient - HOWEVER, we do use them inside all multicore/multi processor systems! - this is how the distributed caches & cores all act like there is just one pool of RAM How similar are modern multi-core systems to networked DSM implementations? How are they different? - see above! Why are we talking about DSM here even though it isn't used at a large scale? - example of an idea that is very powerful and useful at a certain scale - however, it doesn't scale to larger systems and so we need different ideas What modern CPUs do to make multicore work is black magic, very tricky stuff - they really are distributed systems In fact, if you want modern multicore systems to perform best, you minimize the amount of shared memory that your application uses - communication is what kills the performance of all distributed applications, so you limit it as much as possible