News for hackers. Stuff that matters.
Re:Composable multi-threaded parallelism in Julia by gpderetta on Wednesday July 24, 2019 @06:07AM (#20513696)
Hum, isn't cilk-like work stealing depth first? Idle executors steal oldest ancestor and busy executors eagerly execute recursive calls while pushing parent in the local job stack?

Proof of optimality was in the early cilk papers in the '90s.

I'm sure the same algorithms made into Julia via Intel (which bought cilk in the early '00), but it is hardly new except in the 'everything old is new again'.

Also IIRC OpenMP supports (or at least allows) work stealing although at least GCC does not implement it yet.

Re:Composable multi-threaded parallelism in Julia by leiroigh on Wednesday July 24, 2019 @08:21AM (#20514422)
It's all about better L3 utilization. Cilk is good for using L1 and L2, i.e. caches that are core-local, and suboptimal for using L3, i.e. caches that are shared between cores.
Re:Composable multi-threaded parallelism in Julia by gpderetta on Wednesday July 24, 2019 @09:21AM (#20514965)
Can you expand on this or point me to a paper discussing this?
Re:Composable multi-threaded parallelism in Julia by ddragon on Wednesday July 24, 2019 @09:37AM (#20515107)
In the presentation posted here there was a paper citation that compared in terms of cache the model used (parallel depth first scheduling) over work stealing, but I didn't have time to read it yet.

https://www.cs.cmu.edu/%7Echensm/papers/ConstructiveCacheSha...

Re:Composable multi-threaded parallelism in Julia by gpderetta on Wednesday July 24, 2019 @10:10AM (#20515438)
Can't manage to download the file though my flimsy mobile connection, but I'm starting to understand the difference.