[SciPy-User] Speeding up Python Again

Ralf Gommers ralf.gommers@googlemail....
Thu Aug 25 02:05:03 CDT 2011


On Tue, Aug 23, 2011 at 11:11 AM, Rajeev Singh <rajs2010@gmail.com> wrote:

>
>
> On Wed, Aug 10, 2011 at 6:48 PM, Rajeev Singh <rajs2010@gmail.com> wrote:
> > Hi,
> > I was trying out the codes discussed
> > at
> http://technicaldiscovery.blogspot.com/2011/07/speeding-up-python-again.html
> > Here is a summary of my results -
> >             Computer: Desktop    imsc9    aravali   annapurna
> >                NumPy: 7.651419  4.219105  5.576453  4.858640
> >               Cython: 4.259419  3.477259  3.204909  2.357819
> >                Weave: 4.302778     *      3.298551  2.400000
> >       Looped Fortran: 4.199148  3.414484  3.202963  2.315644
> >   Vectorized Fortran: 3.118410  2.131966  1.512303  1.460251
> > pure fortran update1: 1.205727  1.964857  2.034688  1.336086
> > pure fortran update2: 0.600848  0.604649  0.573593  0.721339
> > imsc9, aravali and annapurna are HPC machines at my institute
> > * for some reason Weave didn't compile on imsc9
> >
> > Indeed there is about a factor of 7 to 12 difference between pure fortran
> > with update2 (vectorized) and the numpy version.
> > I should mention that I changed N to 150 in laplace_for.f90
> > Rajeev
>
> Hi,
>
> Continuing the comparison of various ways of implementing solving laplace
> equation, following result might interest you -
>
>                                      Desktop   imsc9  aravali annapurna
>                         Octave (0):  20.7866     *    21.6179     *
>      Vectorized Fortran (pure) (1):   0.7487  0.6501   0.7507  1.1619
>      Vectorized Fortran (f2py) (2):   0.7190  0.6089   0.6243  1.0312
>                          NumPy (3):   4.1343  2.5844   2.6565  3.7445
>                         Cython (4):   1.7273  1.9927   2.0471  1.3525
>                  Cython with C (5):   1.7248  1.9665   2.0354  1.3367
>                          Weave (6):   1.9818     *     2.1326  1.4003
>          Looped Fortran (f2py) (7):   1.6996  1.9657   2.0429  1.3354
>          Looped Fortran (pure) (8):   1.7189  2.0145   2.0917  1.5086
>                       C (pure) (9):   1.2820  1.9948   2.0527  1.4259
>
> imsc9, aravali and annapurna are HPC machines at my institute
> * for some reason Weave didn't compile on imsc9
> * octave isn't installed on imsc9 and annapurna
>
> The difference between numpy and fortran performance seems significant.
> However f2py does as well as pure fortran now. The difference from earlier
> case is that earlier there was a division inside the loop which I have
> replaced by multiplication by reciprocal. This does not affect the result
> but makes the execution faster in all cases except pure fortran (I guess
> fortran compiler was already doing it).
>
> I would be happy to give all the codes if someone is interested. Should we
> update the performance python page at scipy with these codes?
>
> It would be nice to this to http://www.scipy.org/PerformancePython. That
page currently has only one problem, to see a few different ones compared
with the same method gives a better impression of speed differences.

It's a wiki page, so you should be able to add your code, problem
description and results yourself.

Cheers,
Ralf
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/scipy-user/attachments/20110825/46375a11/attachment.html 


More information about the SciPy-User mailing list