They state that one of the goals for "2009Q3 and beyond" is "to remove the GIL and fix the state of multithreading in Python." Which I think is an awesome and ambitious goal that I would find very useful as will many others.
So I hoped the GIL thing would fall into the "2009Q3", but apparently it's in the "beyond" category. Anyway, they need to update that project plan.
My big python app (the robot end of a telepresence connection) suffers from GIL problems. Mostly, threads are used for C-only stuff like video compression so they can easily release the GIL while running. But I gotta say, the complexities of GIL correctness, thread performance, gtk/gobject, callbacks, boost.python, GC-correctness of both Python and C++ objects, and polling make my head hurt. Simplicity would be a find goal for the new system.
If you head over to python-ideas there's actually some really good discussion about removing the GIL right now. Someone has proposed using CAS operations (which I know nothing about) to remove the fine grained locking that is needed under the refcounting GC without the GIL. In addition Antoine Pitrou has been working on a patch to make the GIL more performant on POSIX systems.
They mentioned this at the recent SF Python Meetup. They had found an academic paper that they thought they could apply to Python to get rid of the GIL, but it turned out someone had already tried it unsuccessfully. I think that goal of unladen-swallow is definitely "beyond" for now.
It's unconventional, but 9.3x less memory can be seen in some sense as 1/9.3=10.7 percent as much memory. Not defending it, just trying to interpret :P
Their first release (2009Q1) consisted mostly of patches to mainlines CPython, which improved performance for everybody by roughly 10%. They've added about 10-15% performance on each of the last 2 releases in Unladen Swallow-specific code, but it's unclear (to me) how CPython performance has evolved over the last 6 months. They haven't compared explicitly since 2009Q1, which may or may not be revealing.
From the release notes:
Lowlights:
* LLVM's JIT and other infrastructure needed more work than was expected. As a result, we did not have time to improve performance as much as we would have liked.
* Memory usage is still 2-3x that of Python 2.6.1. However, there is more overhead that can be eliminated for the 2009Q4 release.
The last 2 releases have been mostly building up infrastructure; hopefully most of that is behind them and they can work on getting the 5x performance they're after.
[+] [-] cool-RR|16 years ago|reply
Something I noticed though, in the Project Plan page:
http://code.google.com/p/unladen-swallow/wiki/ProjectPlan#20...
They state that one of the goals for "2009Q3 and beyond" is "to remove the GIL and fix the state of multithreading in Python." Which I think is an awesome and ambitious goal that I would find very useful as will many others.
So I hoped the GIL thing would fall into the "2009Q3", but apparently it's in the "beyond" category. Anyway, they need to update that project plan.
[+] [-] tlb|16 years ago|reply
[+] [-] kingkilr|16 years ago|reply
[+] [-] bdr|16 years ago|reply
[+] [-] mbrubeck|16 years ago|reply
Does that math make sense in some way I'm not seeing?
[+] [-] wisesage5001|16 years ago|reply
This 930% basically means that 2009Q3 can use as little as ~1/10 of the memory of 2009Q2.
[+] [-] sparky|16 years ago|reply
[+] [-] ErrantX|16 years ago|reply
[+] [-] simonw|16 years ago|reply
[+] [-] sparky|16 years ago|reply
From the release notes:
Lowlights:
The last 2 releases have been mostly building up infrastructure; hopefully most of that is behind them and they can work on getting the 5x performance they're after.[+] [-] clopey|16 years ago|reply
[+] [-] rbanffy|16 years ago|reply
[+] [-] unknown|16 years ago|reply
[deleted]
[+] [-] maksimka|16 years ago|reply