std.parallelism: Final review
dsimcha
dsimcha at yahoo.com
Fri Mar 18 17:24:52 PDT 2011
On 3/18/2011 7:33 PM, Jonas Drewsen wrote:
>> Not in Cilk style. Everything just goes to a shared queue. In theory
>> this could
>> be a bottleneck in the micro parallelism case. However, some
>> experimentation I
>> did early in the design convinced me that in practice there's so much
>> other
>> overhead involved in moving work from one processor to another (cache
>> misses,
>> needing to wake up a thread, etc.) that, in cases where a shared queue
>> might be a
>> bottleneck, the parallelism is probably too fine-grained anyhow.
>
> I guess that work stealing could be implemented without changing the
> current interface if evidence shows up that would favor work stealing?
Yes, this would be possible. However, in my experience super
fine-grained parallelism is almost never needed to take full advantage
of whatever hardware you're running on. Therefore, I'm hesitant to add
complexity to std.parallelism to support super fine-grained parallelism,
at least without strong justification in terms of real-world use cases.
The one thing work stealing (and improvements to the queue in general)
has going for it is that it would only make the implementation more
complex, not the interface.
More information about the Digitalmars-d
mailing list