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

non deterministic parallelism considered useful
SMART_READER_LITE
LIVE PREVIEW

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.


slide-1
SLIDE 1

Non-deterministic parallelism considered useful

Derek G. Murray Steven Hand University of Cambridge

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

while ¡(x) ¡{ ¡ ¡ ¡ ¡ ¡… ¡ } ¡

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

Real programmers don’t use deterministic parallelism

slide-6
SLIDE 6

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!

slide-7
SLIDE 7

Example: branch-and-bound

L J M K

slide-8
SLIDE 8

T K M J L

Deterministic data flow

slide-9
SLIDE 9

Irregular parallelism

K L J M

slide-10
SLIDE 10

Irregular parallelism

K L J M T

slide-11
SLIDE 11

T K M

SELECT

J L

Non-deterministic select

slide-12
SLIDE 12

Non-deterministic select

K L J M T

slide-13
SLIDE 13

Non-deterministic select

K L J M T

slide-14
SLIDE 14

K M J L

Asynchronous signals

new bounds work stealing/ shedding

slide-15
SLIDE 15

Asynchronous signals

K L J M

slide-16
SLIDE 16

Asynchronous signals

K L J M

slide-17
SLIDE 17
  • 1. Parallelization
  • 2. Synchronization
  • 3. Scheduling
  • 4. Load balancing
  • 5. Communication
  • 6. Fault tolerance
  • 7. Guaranteed termination
slide-18
SLIDE 18
  • 1. Parallelization
  • 2. Synchronization
  • 3. Scheduling
  • 4. Load balancing
  • 5. Communication
  • 6. Fault tolerance
  • 7. Guaranteed termination
slide-19
SLIDE 19

Challenge: dealing with faults

  • Fail everything
  • Error codes/exceptions
  • Bounded non-determinism
  • Checkpoints
  • Record and replay
slide-20
SLIDE 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