xref: /TaskScheduler/README.md (revision 85ba98b0)
1## About
2
3**Multithreaded task scheduler experiments. Now with integrated profiler!**
4![alt tag](https://raw.githubusercontent.com/SergeyMakeev/TaskScheduler/master/Images/profiler_ui.jpg)
5
6**Written under the influence by great GDC talk "Parallelizing the Naughty Dog engine using fibers" by Christian Gyrling**
7
8Compiled and worked on : **Clang 3.4, GCC 4.8.2, MSVC 2010, XCODE 6.4**
9
10
11## Build status
12
13Linux + OS X
14![Travis build status](https://api.travis-ci.org/SergeyMakeev/TaskScheduler.svg?branch=master)
15
16Windows
17![Appveyor build status](https://ci.appveyor.com/api/projects/status/7o760ylay8mdplo6)
18
19
20
21## Useful reading (in random order):
22
23Parallelizing the Naughty Dog engine using fibers
24http://www.swedishcoding.com/wp-content/uploads/2015/03/parallelizing_the_naughty_dog_engine_using_fibers.pdf
25
26id Tech 5 Challenges
27From Texture Virtualization to Massive Parallelization
28http://s09.idav.ucdavis.edu/talks/05-JP_id_Tech_5_Challenges.pdf
29
30Doom3 BFG Source Code Review: Multi-threading
31http://fabiensanglard.net/doom3_bfg/threading.php
32
33How Ubisoft Develops Games for Multicore - Before and After C++11
34http://www.youtube.com/watch?v=X1T3IQ4N-3g
35
36Killzone Shadow Fall: Threading the Entity Update on PS4
37http://www.slideshare.net/jrouwe/killzone-shadow-fall-threading-the-entity-update-on-ps4
38
39Killzone Shadow Fall Demo Postmortem
40http://www.guerrilla-games.com/presentations/Valient_Killzone_Shadow_Fall_Demo_Postmortem.pdf
41
42Infamous Second Son : Engine Postmortem
43http://adruab.net/wp-images/GDC14_infamous_second_son_engine_postmortem.pdf
44
45Multithreading the Entire Destiny Engine - GDC 2015
46http://www.gdcvault.com/play/1022164/Multithreading-the-Entire-Destiny (members only)
47http://chomikuj.pl/dexio21/GDC+2015/GDC+Vault+-+Multithreading+the+Entire+Destiny+Engine,4690817362.mp4%28video%29
48
49Molecule Engine - Building a load-balanced task scheduler
50https://molecularmusings.wordpress.com/2012/04/05/building-a-load-balanced-task-scheduler-part-1-basics/
51
52Intel Threading Building Blocks - Scheduling Algorithm
53https://www.threadingbuildingblocks.org/docs/help/reference/task_scheduler/scheduling_algorithm.htm
54
55CILK/CILK++ and Reducers
56http://www.slideshare.net/yunmingzhang/yunming-zhang-presentations
57
58Task Scheduling Strategies
59http://www.1024cores.net/home/scalable-architecture/task-scheduling-strategies
60
61Implementing a Work-Stealing Task Scheduler on the ARM11 MPCore
62http://www.rtcgroup.com/arm/2007/presentations/211%20-%20Implementing%20a%20Work-Stealing%20Task%20Scheduler.pdf
63
64Lost Planet graphics course for 3D game fan of Nishikawa Zenji
65http://game.watch.impress.co.jp/docs/20070131/3dlp.htm
66
67Dragged Kicking and Screaming: Source Multicore
68http://www.valvesoftware.com/publications/2007/GDC2007_SourceMulticore.pdf
69
70Games: Playing with Threads
71http://www2.epcc.ed.ac.uk/downloads/lectures/BenNicholson/BenNicholson.pdf
72
73Work Stealing by Pablo Halpern
74https://github.com/CppCon/CppCon2015/tree/master/Presentations/Work%20Stealing
75
76Enki Task Scheduler by Doug Binks
77http://www.enkisoftware.com/devlogpost-20150822-1-Implementing_a_lightweight_task_scheduler.html
78http://www.enkisoftware.com/devlogpost-20150905-1-Internals_of_a_lightweight_task_scheduler.html
79
80Molecule Engine blog - Job System 2.0 by Stefan Reinalter
81http://blog.molecular-matters.com/2015/08/24/job-system-2-0-lock-free-work-stealing-part-1-basics/
82http://blog.molecular-matters.com/2015/09/08/job-system-2-0-lock-free-work-stealing-part-2-a-specialized-allocator/
83http://blog.molecular-matters.com/2015/09/25/job-system-2-0-lock-free-work-stealing-part-3-going-lock-free/
84
85Molecule Engine blog - Building a load-balanced task scheduler by Stefan Reinalter
86http://blog.molecular-matters.com/2012/04/05/building-a-load-balanced-task-scheduler-part-1-basics/
87http://blog.molecular-matters.com/2012/04/12/building-a-load-balanced-task-scheduler-part-2-task-model-relationships/
88http://blog.molecular-matters.com/2012/04/25/building-a-load-balanced-task-scheduler-part-3-parent-child-relationships/
89http://blog.molecular-matters.com/2012/07/09/building-a-load-balanced-task-scheduler-part-4-false-sharing/