+1, I agree with all that you say. 

I think that having more sophisticated forms of concurrency than just workers 
would eventually be great. But every time I've written parallel code, no matter 
what programming model I used (threads, processes, tasks, whatever...) I always 
end up wanting the number of logical CPUs.

-Filip

> On May 5, 2014, at 8:02 PM, Rik Cabanier <caban...@gmail.com> wrote:
> 
> 
> 
> 
>> On Mon, May 5, 2014 at 6:23 PM, Oliver Hunt <oli...@apple.com> wrote:
>> 
>>> On May 5, 2014, at 6:13 PM, Rik Cabanier <caban...@gmail.com> wrote:
>>>  
>>>> Do you really want a page to know that you have a  fancy-pants 24-core Mac 
>>>> Pro rather than a little Mac mini?
>>> 
>>> Yes!
>>> If I have 24 cores ready to do work and the page can put them to use, I 
>>> would like it to do so.
>>> At the same time, if I just have a old mac mini, I don't want the page to 
>>> launch 24 workers as that will exhaust my memory and cause contention. 
>> 
>> But I don't have 24 cores available, i have 24 cores installed.  You have no 
>> idea what the actual workload of the system is, you don't know whether any 
>> other tabs are also using workers, you only have one piece of information, 
>> and that is nowhere near sufficient to make a reasonable choice.
> 
> Sure, if I have 2 tabs and each one consumes all my CPU resources, things 
> will run at half the speed and maybe even worse because of we would use more 
> memory.
> How often would that happen though? Even if it did, would it be surprising to 
> the user that things are slower?
>  
>> A better solution would be to have a WorkerSet API where the browser is able 
>> to make a sensible choice given the current system, system load, power 
>> source, etc, etc
> 
> I'm unconvinced that this is something that authors actually want and also 
> sounds more complex than needed.
> That being said, this is a problem that could be solved in parallel.
> Nothing in web workers is stopping a browser to implement this underneath web 
> workers.
>  
>> Generating workloads on the basis of # of installed cores has be attempted 
>> on every environment and it almost always leads to incorrect choices being 
>> made.
> 
> I don't think that is true. I know several Adobe applications and libraries 
> that look at the number of CPU's to divide up the workload.
> Long time ago, I wrote an application that compressed image data over all 
> available CPUs and it was not that hard to optimize this.
> 
>>>>> On May 5, 2014, at 4:58 PM, Filip Pizlo <fpi...@apple.com> wrote:
>>>>> 
>>>>> I like this.  Personally, I don't see any downside.
>>>>> 
>>>>> Is there a bug (on bugs.webkit.org), and if not, can you create one? :-)
>>>>> 
>>>>> -Phil
>>>>> 
>>>>> 
>>>>>> On May 5, 2014 at 4:49:35 PM, Rik Cabanier (caban...@gmail.com) wrote:
>>>>>> 
>>>>>> All,
>>>>>> 
>>>>>> there's a thread on blink-dev [1] and whatwg [2] to create a new 
>>>>>> parameter on the navigator object that returns the maximum number of 
>>>>>> tasks that can run in parallel. [3]
>>>>>> 
>>>>>> Is this something that WebKit would support?
>>>>>> 
>>>>>> 1: 
>>>>>> https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/B6pQClqfCp4
>>>>>> 2: 
>>>>>> http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2014-May/254200.html
>>>>>> 3: http://wiki.whatwg.org/wiki/NavigatorCores
>>> 
>>> _______________________________________________
>>> webkit-dev mailing list
>>> webkit-dev@lists.webkit.org
>>> https://lists.webkit.org/mailman/listinfo/webkit-dev
> 
> _______________________________________________
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev
_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to