2 ms·
As far as I'm aware, most work stealing schedulers still aren't cache-aware. One really naiive (but possibly effective) way to do this could be to have a per-co
by microcolonel 9y ago
As far as I'm aware, most work stealing schedulers still aren't cache-aware. One really naiive (but possibly effective) way to do this could be to have a per-core (or per L2, or per NUMA node) work LIFO which would be consulted before looking to other cores for work. When your core/L2/NUMA node schedules a task right before terminating, it is more likely that the next task will be local. This, of course, doesn't work if you're more concerned about jitter or latency under load.
I noticed a paper about a cache-aware work-stealing scheduler which I have not yet read[0].
[0]: https://www.researchgate.net/publication/260358432_Adaptive_Cache_Aware_Bitier_Work-Stealing_in_Multisocket_Multicore_Architectures https://www.researchgate.net/publication/260358432_Adaptive_...