[Stackless] Ann: Stackless Psyco

Christian Tismer tismer at stackless.com
Sat Apr 17 17:22:14 CEST 2010

On 4/17/10 12:57 PM, Nicholas Piël wrote:
> On Apr 17, 2010, at 12:44 AM, Christian Tismer wrote:
>> Have you actually downloaded and tried?
>> I need testing, and especially I need crash reports :-)
> I am sorry, can't help you there. I was unable to crash it.

> I just did some testing on a MBPro dual core 2.2Ghz with Debian Lenny and OSX 10.6. Was able to compile and run it flawlessly on both machines. I tested the following two things:
> - nbody benchmark (n=1.000.000)
>    http://shootout.alioth.debian.org/u32/program.php?test=nbody&lang=pypy&id=1
> - Andrew Dalke's Ring Benchmark (100.000 tasklets)
>    http://www.dalkescientific.com/writings/diary/archive/2009/11/15/100000_tasklets.html
> The results are measured with 'time<bench>':
> Nbody         =  44,910sec
> Nbody w/Psyco =   9,184sec
> Ring          =   0,596sec
> Ring  w/Psyco =   1,524sec
> So, not only was I able to run it, it actually improves the performance, at least for the nbody benchmark. The ring benchmark, which relies heavily on soft-switching shows a performance degradation.

Very good. The NBody example is giving expected acceleration.
Unfortunately, it does not use Stackless features.
But the results look like they are quite comparable to PyPy.

The Ring example goes more to GO speed, which is bad :-)
I will add a switch to Psyco not to fall back to hard switching,
but to step out of compilation when soft switching is going
to be used. I have no clue if it will compile anything, then,
but it should.

Note that I did not change anything in Stackless, yet. Just
made Psyco circumvent certain cases. This was just the
proof of concept. Now the real project starts!
> When i wrap the main loop of NBody in a tasklet, Psyco.full() is unable to automatically optimize it and i have to specifically bind Psyco to that object. I am not sure if this is expected behavior.

Ah, good to know. I will try to treat that case specially.
Psyco seems not to see the top level of tasklets.

Thank you so much for your effort!
> I am really looking forward to 64bit support and better switching support!
Hee hee, me too :-)

ciao - chris

Christian Tismer             :^)<mailto:tismer at stackless.com>
tismerysoft GmbH           :     Have a break! Take a ride on Python's
Johannes-Niemeyer-Weg 9A     :    *Starship* http://starship.python.net/
14109 Berlin                 :     PGP key ->  http://wwwkeys.pgp.net/
work +49 30 802 86 56  mobile +49 173 24 18 776  fax +49 30 80 90 57 05
PGP 0x57F3BF04       9064 F4E1 D754 C2FF 1619  305B C09C 5A3B 57F3 BF04
       whom do you want to sponsor today?   http://www.stackless.com/

More information about the Stackless mailing list