Ah! Ok, I've noted array.array (along with running bigger tests to
check for JIT warm-up overheads). Hopefully I'll get some more time in
a few weeks to play with variants.
Cheers!
i.

On 25 July 2011 10:08, Maciej Fijalkowski <fij...@gmail.com> wrote:
> On Mon, Jul 25, 2011 at 11:00 AM, Ian Ozsvald <i...@ianozsvald.com> wrote:
>> Dear all, I've published v0.2 of my High Performance Python tutorial
>> write-up from the session I ran at EuroPython:
>> http://ianozsvald.com/2011/07/25/high-performance-python-tutorial-v0-2-from-europython-2011/
>>
>> Antonio - you asked earlier if the 'expanded math' version of the
>> Mandelbrot solver (using doubles rather than complex numbers) would be
>> faster - I've timed it and it is a bit faster with a nightly build of
>> PyPy, but nowhere near as fast at ShedSkin's generated C output
>> (details below).
>>
>> Maciej - thanks for pointing me at the numpy module. I've added a tiny
>> section showing numpy in PyPy but I haven't converted the Mandelbrot
>> solver to use it (even finishing v0.2 took longer than I'd thought).
>> I'm hoping that some more exposure in the report might bring in more
>> volunteers from outside.
>>
>> Here's a clip from the report in the PyPy section:
>> "By running pypy pure_python.py 1000 1000 on my MacBook it takes 5.9
>> seconds, running pypy pure_python_2.py 1000 1000 takes 4.9 seconds.
>> (Ian - the only difference with pure_python_2.py is that local
>> dereferences in the tight loop are moved outside the loop, causing
>> fewer dereference operations)
>>
>> As an additional test (not shown in the graphs) I ran pypy
>> shedskin2.py 1000 1000 which runs the expanded math version of the
>> shedskin variant below (this replaces complex numbers with floats and
>> expands abs to avoid the square root). The shedskin2.py result takes
>> 3.2 seconds (which is still much slower than the 0.4s version compiled
>> using shedskin)."
>>
>> The pure_python src is here:
>> https://github.com/ianozsvald/EuroPython2011_HighPerformanceComputing/tree/master/mandelbrot/python
>>
>> shedskin2.py is available here:
>> https://github.com/ianozsvald/EuroPython2011_HighPerformanceComputing/tree/master/mandelbrot/shedskin
>>
>> I haven't tested whether the warm-up periods for PyPy are significant,
>> possibly they account for much of the difference between ShedSkin and
>> PyPy? I want to revisit this but for the next few weeks I have to go
>> back to other projects.
>
> Most come from the fact that you're using lists and not say
> array.array (or numpy array), so the storage is not optimized.
> ShedSkin doesn't allow you to store different types in a list. We'll
> make it fast one day even if you use list, but indeed, using
> array.array would make it much faster.
>
> Cheers,
> fijal
>



-- 
Ian Ozsvald (A.I. researcher, screencaster)
i...@ianozsvald.com

http://IanOzsvald.com
http://SocialTiesApp.com/
http://MorConsulting.com/
http://blog.AICookbook.com/
http://TheScreencastingHandbook.com
http://FivePoundApp.com/
http://twitter.com/IanOzsvald
_______________________________________________
pypy-dev mailing list
pypy-dev@python.org
http://mail.python.org/mailman/listinfo/pypy-dev

Reply via email to