+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