DistOS 2023W 2023-01-25: Difference between revisions
No edit summary |
|||
(3 intermediate revisions by the same user not shown) | |||
Line 5: | Line 5: | ||
* Why can't we have a general solution to DSM? | * Why can't we have a general solution to DSM? | ||
* Why are consistency models so important 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? | * 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? | * What is unclear or confusing about DSM & the readings? | ||
==Notes== | |||
<pre> | |||
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 | |||
</pre> |
Latest revision as of 02:08, 26 January 2023
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