Kuchumov R., Sokolov A., Korkhov V.
Staccato: Cache-Aware Work-Stealing Task Scheduler for Shared-Memory Systems
// Computational Science and Its Applications – ICCSA 2018. ICCSA 2018. Lecture Notes in Computer Science, vol 10963. Springer, Cham, 2018. Pp. 91-102
Ключевые слова: Work-stealing scheduler, Work-stealing deques, Data structures
Parallel tasks work-stealing schedulers yield near-optimal tasks distribution (i.e. all CPU cores are loaded equally) and have low time, memory and inter-thread synchronizations. The key idea of work-stealing strategy is that when scheduler worker runs out of tasks for execution, it start stealing tasks from the queues of other workers. It’s been shown that double ended queues based on circular arrays are effective in this scenario. They are designed with an assumption that tasks pointer are stored in these data structures, while tasks object reside in heap memory. By modifying tasks queues so that they can hold task objects instead pointers we managed to increase the performance above 2.5 times on CPU bound applications and decrease last-level cache misses 30% compared to Intel TBB and Intel/MIT Cilk work-stealing schedulers.
Индексируется в Web of Science, Scopus, Google Scholar