On Wed, Aug 10, 2011 at 6:48 PM, Rajeev Singh <rajs2...@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?

This might be of interest to people doing numerical computation using Sage.
Should we put all these examples in Numerical Sage along with the above
table?

Rajeev

-- 
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org

Reply via email to