News for hackers. Stuff that matters.
Re:Composable multi-threaded parallelism in Julia by chrisseaton on Wednesday July 24, 2019 @09:24AM (#20514994)
In my experience most work-stealing schedulers for task parallelism like this are going to be depth-first. I’ve written several myself. Primarily for temporal locality - if you just created a task it’ll be resident in cache.
Re:Composable multi-threaded parallelism in Julia by gpderetta on Wednesday July 24, 2019 @09:54AM (#20515270)
I'm still trying to access the relevant papers, but from bits of discussions here it seems to me that the difference between the Julia scheduler and cilk is that the former will try to distribute sibling leaf tasks among executors enforcing as close as a global depth first view as possible, while cilk does depth first on each executor but different executors will be exploring distinct the problem space branching off as close to the root as possible (due to the steal the oldest ancestor behaviour). It is a compromise between better cross executor cache locality and increased contention I guess.