DistOS 2023W 2023-01-25: Difference between revisions

From Soma-notes
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