|
Boost : |
From: Peter Dimov (pdimov_at_[hidden])
Date: 2008-06-02 21:58:14
I wrote that
> If the scheduler performance is insufficient, it will not be able to
> maintain a low M. If it does manage to maintain a low M, then its
> performance is sufficient.
Now that I think about it, this isn't true for the typical fork-join
parallelism.
http://gee.cs.oswego.edu/dl/papers/fj.pdf
If we have for example an active function fib(n) that returns
fib(n-1)+fib(n-2), it will quickly generate a large N. In this case however,
if the task queue is actually a stack, it can be reduced in a single
execution as the older tasks will become ready as soon as the newer tasks
are done. (But it will take logN to fill it. On second thought, with a FIFO
policy it will be generated in a single pass and then reduced in logN
passes. So it's basically the same.)
Not that fork-join parallelism makes much sense for a single-threaded active
object. :-)
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk