can multi-core improve single funciton?

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Thu Feb 19 03:54:45 EST 2009


En Wed, 18 Feb 2009 23:36:25 -0200, sturlamolden <sturlamolden at yahoo.no>
escribió:
> On Feb 10, 7:28 am, oyster <lepto.pyt... at gmail.com> 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




More information about the Python-list mailing list