En Wed, 18 Feb 2009 23:36:25 -0200, sturlamolden <[email protected]>
escribió:
On Feb 10, 7:28 am, oyster <[email protected]> wrote:
Let's rewrite that slightly and see...
def fib(n, _map=None):
if not _map: _map = map
if n > 2:
return sum(_map(fib, (n-1, n-2)))
else:
return 1
With two cores:
E:\>python fibotest.py
parallel t: 31.300226 seconds
sequential t: 48.070695 seconds
Yes it can!
Are you kidding?
This is like building a house one brick at a time, but before placing a
new brick, you throw all the previous work and start again from start.
Certainly two workers would help more than one - but the best way to do it
is *NOT* to repeat all that additional work over and over in the first
place.
Even my Pentium I MMX 233MHz can compute fib(36) thousand of times faster
than that with the right algorithm. So I don't see the point in
parallelizing if you're going to get infinitely worse results...
--
Gabriel Genellina
--
http://mail.python.org/mailman/listinfo/python-list