On Apr 12, 2013, at 1:59 PM, Ryosuke Niwa <rn...@webkit.org> wrote:

> On Fri, Apr 12, 2013 at 1:50 PM, Filip Pizlo <fpi...@apple.com> wrote:
> 
> On Apr 12, 2013, at 1:39 PM, Jarred Nicholls <jarred.nicho...@gmail.com> 
> wrote:
> 
>> On Fri, Apr 12, 2013 at 2:54 PM, Filip Pizlo <fpi...@apple.com> wrote:
>> 
>> For as little worth as it is, I agree with you Filip that providing 
>> low-level primitives would be best in terms of a foundation for many 
>> parallel programming models.  In terms of actually supporting shared mutable 
>> memory and locks, it would be a challenge for the engines to become 
>> thread-safe (internally) across contexts that share memory cells.  I'd 
>> envision the sharing of mutable memory being an opt-in semantic, marking a 
>> piece of memory as being shared/mutable from multiple contexts.
> 
> Fixing the engines is a matter of typing. ;-)
> 
> I don't think we need to add language features for opt-in, though this is an 
> intriguing idea.
> 
> Without opt-in, the one biggish challenge would be DOM accesses from threads 
> other than the main thread; I suspect for those the initial implementation 
> would have to throw an exception from non-main-threads if you try to access a 
> DOM node.  This is akin to what some UI toolkits do: they let you have 
> threads but prohibit access UI things from anything but the thread on which 
> the runloop sits.  Of course, they don't do the thread-check; we would have 
> to do it to preserve integrity and security.
> 
> We already have Web workers for this kind of stuff, no?  Is your proposal 
> significantly different from what Web worker offers?

Web workers don't have shared memory.  They instead have a really expensive 
message passing model.

Yes, my proposal is significantly different from Web workers.

> 
> This is just a thought but is it possible to infer semantics of what Web 
> workers and use GPU or SIMD instructions instead of starting a new thread as 
> appropriate?

Probably that would be hard, because the Web Worker semantics are so bizarre: 
they require copying things all over the place.  It's probably an even worse 
match for SIMD/GPU/multicore than just Array.prototype.forEach().

-Filip

> 
> - R. Niwa

_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to