non deterministic parallelism considered useful
play

Non-deterministic parallelism considered useful Derek G. Murray - PowerPoint PPT Presentation

Non-deterministic parallelism considered useful Derek G. Murray Steven Hand University of Cambridge 1. Parallelization 2. Synchronization 3. Scheduling 4. Load balancing 5. Communication 6. Fault tolerance 7. Guaranteed termination 1.


  1. Non-deterministic parallelism considered useful Derek G. Murray Steven Hand University of Cambridge

  2. 1. Parallelization 2. Synchronization 3. Scheduling 4. Load balancing 5. Communication 6. Fault tolerance 7. Guaranteed termination

  3. 1. Parallelization 2. Synchronization 3. Scheduling 4. Load balancing while ¡ (x) ¡{ ¡ 5. Communication ¡ ¡ ¡ ¡… ¡ } ¡ 6. Fault tolerance 7. Guaranteed termination

  4. 1. Parallelization 2. Synchronization 3. Scheduling 4. Load balancing 5. Communication 6. Fault tolerance ⇔ Deterministic 7. Guaranteed termination

  5. Real programmers don’t use deterministic parallelism

  6. Real programmers use • Async. Networks • Timeouts • Real hardware • Signals • Performance • select() loops interference • Condition variables • User input • Mutable state All of these cause non-determinism!

  7. Example: branch-and-bound J K L M

  8. Deterministic data flow J K L M T

  9. Irregular parallelism J K L M

  10. Irregular parallelism J K L M T

  11. Non-deterministic select J K L M SELECT T

  12. Non-deterministic select J K L M T

  13. Non-deterministic select J K L M T

  14. Asynchronous signals work stealing/ shedding J K L M new bounds

  15. Asynchronous signals J K L M

  16. Asynchronous signals J K L M

  17. 1. Parallelization 2. Synchronization 3. Scheduling 4. Load balancing 5. Communication 6. Fault tolerance 7. Guaranteed termination

  18. 1. Parallelization 2. Synchronization 3. Scheduling 4. Load balancing 5. Communication 6. Fault tolerance 7. Guaranteed termination

  19. Challenge: dealing with faults • Fail everything • Error codes/exceptions • Bounded non-determinism • Checkpoints • Record and replay

  20. Conclusions • Many benefits of non-determinism – Performance, adaptability, interactivity • System must allow non-determinism • Determinism at language-level – For programmers who need training wheels

Recommend


More recommend