Publication | Closed Access
An Efficient Work-Stealing Scheduler for Task Dependency Graph
30
Citations
28
References
2020
Year
Unknown Venue
Cluster ComputingEngineeringComputer ArchitectureSystems EngineeringResource WasteParallel ComputingParallel WorkloadsMassively-parallel ComputingDependency AnalysisComputer EngineeringTask ParallelismScheduling (Computing)Computer ScienceTask Dependency GraphScheduling AnalysisGraph TheoryProgram AnalysisEdge ComputingParallel Performance EvaluationParallel ProgrammingAvailable Task ParallelismData-level Parallelism
Work-stealing is a key component of many parallel task graph libraries such as Intel Threading Building Blocks (TBB) FlowGraph, Microsoft Task Parallel Library (TPL) Batch .Net, Cpp-Taskflow, and Nabbit. However, designing a correct and effective work-stealing scheduler is a notoriously difficult job, due to subtle implementation details of concurrency controls and decentralized coordination between threads. This problem becomes even more challenging when striving for optimal thread usage in handling parallel workloads with complex task graphs. As a result, we introduce in this paper an effective work-stealing scheduler for execution of task dependency graphs. Our scheduler adopts a simple and efficient strategy to adapt the number of working threads to available task parallelism at any time during the graph execution. Our strategy is provably good in preventing resource underutilization and simultaneously minimizing resource waste when tasks are scarce. We have evaluated our scheduler on both micro-benchmarks and a real-world circuit timing analysis workload, and demonstrated promising results over existing methods in terms of runtime, energy efficiency, and throughput.
| Year | Citations | |
|---|---|---|
Page 1
Page 1