Adaptive Parallelism
Done
Done
Done
Eager Scheduling
workers call getWork() when they are done with old work
uses circular work pool so undone work can be reassigned
fast idle workers can bypass slow or crashed workers
efficient and crash-tolerant
Work0
Work1
Work2
Work3
nextUnDoneWork
MWWorkPool
getWork(pid)
EngineA
Work 1
EngineB
Work 2
EngineC
Work 3
MWWorkManager
getNextUnDoneWork()
Work0
Work1
Work2
Work3
nextUnDoneWork
MWWorkPool
EngineA
Work 1
EngineB
Work 1
EngineC
Work 3
getWork(pid)
getNextUnDoneWork()
MWWorkManager
Previous slide
Next slide
Back to first slide
View graphic version