[Edu-sig] Introducing Python to Engineering Students

David MacQuigg macquigg at ece.arizona.edu
Wed Mar 12 01:11:45 CET 2008


At 03:12 PM 3/11/2008 -0700, Rob Malouf wrote:

>On Mar 11, 2008, at 2:57 PM, David MacQuigg wrote:
>> I guess what I should conclude is that when performance is  
>>important, don't bother trying to optimize Python.  Go straight to  
>>C, and get 10 or 100X improvement.
>
>That hasn't always been my experience.  I found that using psyco and  
>numpy (along with careful profiling and optimization), I can often get  
>essentially the same performance from pure Python that I can get from  
>mixed Python/C solutions, and with much less trouble.

I agree that the Python/C interface is more trouble than it should be, especially for freshman engineering students and technical professionals who don't have time for messy programming details.  What I would like to see is something like a simple "directive" I could put in my Python code to say "The following function is in C", and have Python set up the linkage for me.

It would make a nice improvement in this Mandelbrot demo if you could show me a way to significantly improve the speed of the Python I already have, perhaps avoiding the need for C.  I've posted the complete Python module at
http://ece.arizona.edu/~edatools/ece175/projects/mandelbrots/mandel.py
Just run the command 
        $ python mandel.py
and you should see the output from two examples in the doctests:
        1a) Python speed = 787 points/sec
        1b) C speed      = 125500 points/sec
        2a) Python speed = 823 points/sec
        2b) C      speed = 134300 points/sec

The C source, mandelbrotC.c, is also in that same directory.  The tests above were done on an old Windows machine running Cygwin.

-- Dave  





More information about the Edu-sig mailing list