1 / 32

Work Stealing Scheduler

Work Stealing Scheduler. Announcements. Text books Assignment 1 Assignment 0 results Upcoming Guest lectures. Recommended Textbooks. Patterns for Parallel Programming Timothy Mattson, et.al. The Art of Multiprocessor Programming Maurice Herlihy, Nir Shavit.

bracha
Download Presentation

Work Stealing Scheduler

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Work Stealing Scheduler Work Stealing Scheduler

  2. Work Stealing Scheduler Announcements • Text books • Assignment 1 • Assignment 0 results • Upcoming Guest lectures

  3. Work Stealing Scheduler Recommended Textbooks Patterns for Parallel Programming Timothy Mattson, et.al. The Art of Multiprocessor Programming Maurice Herlihy, NirShavit Parallel Programming with Microsoft .NET http://parallelpatterns.codeplex.com/

  4. Work Stealing Scheduler Available on Website • Assignment 1 (due two weeks from now) • Paper for Reading Assignment 1 (due next week)

  5. Work Stealing Scheduler Assignment 0 • Thanks for submitting • Provided important feedback to us

  6. Work Stealing Scheduler Percentage Students Answering Yes

  7. Work Stealing Scheduler Number of Yes Answers Per Student

  8. Work Stealing Scheduler Upcoming Guest Lectures • Apr 12: Todd Mytkowicz • How to (and not to) measure performance • Apr 19: Shaz Qadeer • Correctness Specifications and Data Race Detection

  9. Work Stealing Scheduler Last Lecture Recap

  10. Work Stealing Scheduler Last Lecture Recap • Parallel computation can be represented as a DAG • Nodes represent sequential computation • Edges represent dependencies Sequential Sort Split Merge Sequential Sort Time

  11. Work Stealing Scheduler Last Lecture Recap • Parallel computation can be represented as a DAG • = Work = time on a single processor • = Depth = time assuming infinite processors • = time on P processor using optimal scheduler

  12. Work Stealing Scheduler Last Lecture Recap • Work law: • Depth law:

  13. Work Stealing Scheduler Last Lecture Recap • Work law: • Depth law: • Greedy scheduler is optimal within a factor of 2

  14. Work Stealing Scheduler This Lecture • Design of a greedy scheduler • Task abstraction • Translating high-level abstractions to tasks

  15. Work Stealing Scheduler This Lecture • Design of a greedy scheduler • Task abstraction • Translating high-level abstractions to tasks .NET Program .NET Scheduler … TBB Program Intel TBB

  16. Work Stealing Scheduler (Simple) Tasks • A node in the DAG • Executing a task generates dependent subtasks Sort(4) Sort(4) Split(8) Merge(8) Split(8) Merge(8) Sort(4) Sort(4) Split(16) Merge(16)

  17. Work Stealing Scheduler (Simple) Tasks • A node in the DAG • Executing a task generates dependent subtasks • Note: Task C is generated by A or B, whoever finishes last Sort(4) Sort(4) Split(8) Merge(8) Split(8) Merge(8) A Sort(4) Sort(4) C Split(16) Merge(16) B

  18. Work Stealing Scheduler Design Constraints of the Scheduler • The DAG is generated dynamically • Based on inputs and program control flow • The graph is not known ahead of time • The amount of work done by a task is dynamic • The weight of each node is not know ahead of time • Number of processors P can change at runtime • Hardware processors are shared with other processes, kernel

  19. Work Stealing Scheduler Design Requirements of the Scheduler

  20. Work Stealing Scheduler Design Requirements of the Scheduler • Should be greedy • A processor cannot be idle when tasks are pending • Should limit communication between processors • Should schedule related tasks in the same processor • Tasks that are likely to access the same cachelines

  21. Work Stealing Scheduler Attempt 0: Centralized Scheduler • “Manager distributes tasks to others” • Manager: assigns tasks to workers, ensures no worker is idle • Workers: On task completion, submit generated tasks to the manager

  22. Work Stealing Scheduler Attempt 1: Centralized Work Queue • “All processors share a common work queue” • Every processor dequeues a task from the work queue • On task completion, enqueuethe generated tasks to the work queue

  23. Work Stealing Scheduler Attempt 2: Work Sharing • “Loaded workers share” • Every processor pushes and pops tasks into a local work queue • When the work queue gets large, send tasks to other processors

  24. Work Stealing Scheduler Disadvantages of Work Sharing • If all processors are busy, each will spend time trying to offload • “Perform communication when busy” • Difficult to know the load on processors • A processor with two large tasks might take longer than a processor with five small tasks • Tasks might get shared multiple times before being executed • Some processors can be idle while others are loaded • Not greedy

  25. Work Stealing Scheduler Attempt 3: Work Stealing • “Idle workers steal” • Each processor maintains a local work queue • Pushes generated tasks into the local queue • When local queue is empty, steal a task from another processor

  26. Work Stealing Scheduler Nice Properties of Work Stealing • Communication done only when idle • No communication when all processors are in full throttle • Each task is stolen at most once • This scheduler is greedy, assuming stealers always succeed • Limited communication • steals on average for some stealing strategies

  27. Work Stealing Scheduler Nice Properties of Work Stealing • Communication done only when idle • No communication when all processors are in full throttle • Each task is stolen at most once • This scheduler is greedy, assuming stealers always succeed • Limited communication • steals on average for some stealing strategies • Assignment 1 explores different stealing strategies

  28. Work Stealing Scheduler Work Stealing Queue Datastructure • A specialized deque (Double-Ended Queue) with three operations: • Push : Local processor adds newly created tasks • Pop : Local processor removes task to execute • Steal : Remote processors remove tasks Push

  29. Work Stealing Scheduler Work Stealing Queue Datastructure • A specialized deque (Double-Ended Queue) with three operations: • Push : Local processor adds newly created tasks • Pop : Local processor removes task to execute • Steal : Remote processors remove tasks Push Pop? Pop? Steal? Steal?

  30. Work Stealing Scheduler Work Stealing Queue Datastructure • A specialized deque (Double-Ended Queue) with three operations: • Push : Local processor adds newly created tasks • Pop : Local processor removes task to execute • Steal : Remote processors remove tasks Push Pop Steal

  31. Work Stealing Scheduler Advantages • Stealers don’t interact with local processor when the queue has more than one task • Popping recently pushed tasks improves locality • Stealers take the oldest tasks, which are likely to be the largest (in practice) Push Pop Steal

  32. Work Stealing Scheduler For Assignment 1 • We provide an implementation of Work Stealing Queue • This implementation is thread-safe • Clients can concurrently call the push, pop, steal operations • You don’t need to use additional locks or other synchronization • Implement the scheduler logic and stealing strategy • Hint: this implementation is single threaded

More Related