This post originated from an RSS feed registered with Python Buzz
by Ian Bicking.
Original Post: GIL of Doom!
Feed Title: Ian Bicking
Feed URL: http://www.ianbicking.org/feeds/atom.xml
Feed Description: Thoughts on Python and Programming.
Why do peopleseemto think
that the GIL (global interpreter lock) is such a big deal?
Are there more people out there than I realize who have applications that fall in that multi-processor sweet spot? You need:
Enough money to buy a MP server.
A processor-bound application.
Performance needs that excede the fastest (single) processors reasonably available.
No other significant processes on the same server (e.g., a database server, or Apache).
An application that cannot easily be factored into separate processes.
Performance needs that won't excede an MP machine (because if you need multiple servers you'll have to factor your application into multiple processes, and you could just run two processes on the same MP machine)
Sure as heck doesn't describe any situation I've been in. And I haven't actually heard anyone say, "Python is great, but that GIL really kicked my ass when I was working on a past project." No, it's all just "Python doesn't scale" bullshit. The GIL keeps it from scaling in one little corner case, boo hoo.
Does Python scale wonderfully to multiple processes? It's no Erlang, and concurrency oriented programming is not Python's strong point (not necessarily a weak point -- let's just say it's not a point either way). But to me that's more of a programming tool issue, not an interpreter issue. POSH matters more than the GIL, and I'm sure there's other ideas and programming techniques which could matter even more than that. So let's just forget about the GIL, there's far more interesting things to be concerned with.