[SciPy-User] help speeding up a Runge-Kuta algorithm (cython, f2py, ...)
Ryan Krauss
ryanlists@gmail....
Tue Aug 7 14:24:39 CDT 2012
I agree. Thanks again.
On Tue, Aug 7, 2012 at 1:10 PM, Sturla Molden <sturla@molden.no> wrote:
> On 07.08.2012 18:37, Ryan Krauss wrote:
>
>> For many Runge-Kutta steps, your Cython code is 200 times faster than
>> my pure Python version. Fortran is still 1.6 times faster than the
>> Cython version, but the Fortran version is much more work to code up.
>
> Don't expect anything to be "faster than Fortran" for certain kind of
> numerical work. Cython has a certain overhead (larger than C and
> Fortran), and since it compiles to ANSI C (not ISO C) we cannot restrict
> pointers. But still, ~75% of Fortran performance is often acceptable!
> Another thing is you need to look at "scalability". How much of that
> extra runtime is constant due to differences between Cython and f2py?
> How much is variable due to the numerical kernel being faster in
> Fortran? Will differently sized problems give you the same overhead from
> using Cython? It often helps to plot a graph of the performance (mean
> and error bars) for various problem sizes, rather than benchmarking at
> one single point.
>
> Correctness is always more important than speed. That is one thing to
> consider too. With Cython we can begin with a tested Python prototype
> and optimize along the way, using the Python profiler to pinpoint where
> it matters the most. Python, NumPy and Cython will not win the world
> championship of being "fastest on the CPU" for simple numerical kernels,
> but that is not the idea either. Implementing complex algorithms in
> Fortran can be a PITA compared to Python. But Cython helps us in a
> stright forward way to speed up Python code and/or interface with C or
> C++. Fortran is only nice for helping us scientists to avoid the pointer
> arithmetics of C, but Cython's memoryviews do that too.
>
>
> Sturla
> _______________________________________________
> SciPy-User mailing list
> SciPy-User@scipy.org
> http://mail.scipy.org/mailman/listinfo/scipy-user
More information about the SciPy-User
mailing list