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...
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.