W3C home > Mailing lists > Public > whatwg@whatwg.org > November 2009

[whatwg] [WebWorkers] About the delegation example

From: David Bruant <bruant@enseirb-matmeca.fr>
Date: Fri, 06 Nov 2009 10:50:12 -0800
Message-ID: <4AF46FE4.1060302@enseirb-matmeca.fr>
Tab Atkins Jr. a ?crit :
> On Thu, Nov 5, 2009 at 10:32 PM, David Bruant <bruant at enseirb-matmeca.fr> wrote:
>   
>> Hi,
>>
>> First of all, there is a typo error in this example. The main HTML page
>> is a copy/paste of the first example ("Worker example: One-core
>> computation").
>>
>> My point here is to ask for a new attribute for the navigator object
>> that could describe the "best" number of workers in a delegation use case.
>>
>> In the delegation example, the number of workers chosen is an arbitrary
>> 10. But, in a single-core processor, having only one worker will result
>> in more or less the same running time, because at the end, each worker
>> runs on the only core. This is just a waist of memory (and maybe time
>> because of scheduling cost).
>>     
>
> This is not true.  The naive way of coding it without workers may
> freeze the UI whenever doing heavy computation.  To ensure that you
> can avoid this you have to be very explicit about breaking up your
> algorithm into chunks that you can chain together with setTimeout.
> Offloading the heavy computation to a worker allows you to code in the
> naive style (which is much easier to both code and understand) without
> the risk of UI-freeze.
>
> (I don't know the details, but it also seems possible that the
> context-switching between main page and worker may be cheaper than
> heavy setTimeout use.  Someone else would have to confirm/deny this.)
>   
When I say "having only one worker will result in more or less the same
running time", I mean "one worker on top of the main delegating browsing
context".

So, I compare "the main browsing context + 10 workers" with "the main
browsing context + 1 worker" (or 16 in the next example). In all what I
say, there is no need to change the architecture of the program of to
use timers, just the JS variable "num_workers".

Sorry for the misunderstanding.

>> On the other hand, on a 16-core processor (which doesn't exist yet, but
>> is a realistic idea for the next couple of decades), the task could be
>> executed faster with 16 workers.
>>     
>
> Try 2 years, if AMD's press releases can be trusted. ^_^
>
>   
>> The current best way to determine the number of worker that yields the
>> ressouces in the best way is to run a benchmark on an increasing number
>> of worker and stop it when the performance improvement stops.
>> I hope you will admit that this way in not acceptable.
>>     
>
> I'm interested in seeing if browsers can provide reasonably accurate
> estimates of this.
>
> ~TJ
>   
David
Received on Friday, 6 November 2009 10:50:12 UTC

This archive was generated by hypermail 2.4.0 : Wednesday, 22 January 2020 16:59:18 UTC