Hi Dag Severre,

Thanks so much for your reply; I perfectly understood the aspects  
involved now.
I understand the argument why to wrap the function in Cython now.

I did got your predicted 2* speedup, given how trivial the code is,  
already something.

Thanks again,

-jelle

On Dec 10, 2008, at 2:16 PM, Dag Sverre Seljebotn wrote:

> Jelle Feringa wrote:
>> Hi Dag Severre,
>>
>> Thanks, I will read through the "Comments on example code" thread,
>> sorry I missed out on that.
>> Thanks also for the example you gave.
>>
>> I did not understood why its necessary to wrap the do_curvature call
>> in Cython though: the call is close enough to C++ execution speed.
>>
> This is the point we disagree on :-) When wrapping the function using
> SWIG, it means that calling it has to happen by calling a Python
> function -- meaning amongst other things that the arguments and  
> results
> are packed into Python objects and unpacked again etc.
>
> Of course, the relative impact of this depends on how much time is  
> spent
> in the C++ function.
>> Like Robert points out: I can measure a 500*500 loop in Python, it
>> would be hard to measure it in Cython.
>> That's the bit I'm interested in ;')
>>
> But it is certainly measurable if you put a SWIG function call  
> within it!
>
> If the call overhead of calling the SWIG function times 500^2 is
> acceptable, then you are indeed right, the following can be  
> implemented
> and will give the speed you are after:
>
> loop_fast2d( do_curvature, do_result, (1,500), (1,500) )
>
>
> It is just that we don't consider it fast enough. This is likely to  
> give
> a 2x speed increase at best, while the speed increases we seek using
> Cython are typically in the order of 100x.
>
> Dag Sverre
_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev

Reply via email to