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

Non-deterministic parallelism considered useful · • Many benefits of non-determinism – Performance, adaptability, interactivity • System must allow non-determinism • Determinism

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Non-deterministic parallelism considered useful · • Many benefits of non-determinism – Performance, adaptability, interactivity • System must allow non-determinism • Determinism

Non-deterministic parallelism considered useful

Derek G. Murray Steven Hand

University of Cambridge

Page 2: Non-deterministic parallelism considered useful · • Many benefits of non-determinism – Performance, adaptability, interactivity • System must allow non-determinism • Determinism

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

Page 3: Non-deterministic parallelism considered useful · • Many benefits of non-determinism – Performance, adaptability, interactivity • System must allow non-determinism • Determinism

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

while  (x)  {          …  }  

Page 4: Non-deterministic parallelism considered useful · • Many benefits of non-determinism – Performance, adaptability, interactivity • System must allow non-determinism • Determinism

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

Page 5: Non-deterministic parallelism considered useful · • Many benefits of non-determinism – Performance, adaptability, interactivity • System must allow non-determinism • Determinism

Real programmers don’t use

deterministic parallelism

Page 6: Non-deterministic parallelism considered useful · • Many benefits of non-determinism – Performance, adaptability, interactivity • System must allow non-determinism • Determinism

Real programmers use

•  Async. Networks •  Real hardware •  Performance

interference •  User input

•  Timeouts •  Signals •  select() loops •  Condition variables •  Mutable state

All of these cause non-determinism!

Page 7: Non-deterministic parallelism considered useful · • Many benefits of non-determinism – Performance, adaptability, interactivity • System must allow non-determinism • Determinism

Example: branch-and-bound

L J M K

Page 8: Non-deterministic parallelism considered useful · • Many benefits of non-determinism – Performance, adaptability, interactivity • System must allow non-determinism • Determinism

T

K M J L

Deterministic data flow

Page 9: Non-deterministic parallelism considered useful · • Many benefits of non-determinism – Performance, adaptability, interactivity • System must allow non-determinism • Determinism

Irregular parallelism

K L J M

Page 10: Non-deterministic parallelism considered useful · • Many benefits of non-determinism – Performance, adaptability, interactivity • System must allow non-determinism • Determinism

Irregular parallelism

K

L

J

M

T

Page 11: Non-deterministic parallelism considered useful · • Many benefits of non-determinism – Performance, adaptability, interactivity • System must allow non-determinism • Determinism

T

K M

SELECT

J L

Non-deterministic select

Page 12: Non-deterministic parallelism considered useful · • Many benefits of non-determinism – Performance, adaptability, interactivity • System must allow non-determinism • Determinism

Non-deterministic select

K

L

J

M

T

Page 13: Non-deterministic parallelism considered useful · • Many benefits of non-determinism – Performance, adaptability, interactivity • System must allow non-determinism • Determinism

Non-deterministic select

K

L

J

M

T

Page 14: Non-deterministic parallelism considered useful · • Many benefits of non-determinism – Performance, adaptability, interactivity • System must allow non-determinism • Determinism

K M J L

Asynchronous signals

new bounds

work stealing/shedding

Page 15: Non-deterministic parallelism considered useful · • Many benefits of non-determinism – Performance, adaptability, interactivity • System must allow non-determinism • Determinism

Asynchronous signals

K

L

J

M

Page 16: Non-deterministic parallelism considered useful · • Many benefits of non-determinism – Performance, adaptability, interactivity • System must allow non-determinism • Determinism

Asynchronous signals

K

L

J

M

Page 17: Non-deterministic parallelism considered useful · • Many benefits of non-determinism – Performance, adaptability, interactivity • System must allow non-determinism • Determinism

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

Page 18: Non-deterministic parallelism considered useful · • Many benefits of non-determinism – Performance, adaptability, interactivity • System must allow non-determinism • Determinism

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

Page 19: Non-deterministic parallelism considered useful · • Many benefits of non-determinism – Performance, adaptability, interactivity • System must allow non-determinism • Determinism

Challenge: dealing with faults

• Fail everything • Error codes/exceptions • Bounded non-determinism • Checkpoints • Record and replay

Page 20: Non-deterministic parallelism considered useful · • Many benefits of non-determinism – Performance, adaptability, interactivity • System must allow non-determinism • Determinism

Conclusions

• Many benefits of non-determinism – Performance, adaptability, interactivity

•  System must allow non-determinism • Determinism at language-level – For programmers who need training wheels