If I need performance badly enough that I'm considering making major structural changes in order to utilise multi-process or find some other way around the GIL, I probably ought to be considering using a language that supports what I'm trying to do. Of course my python projects tend to be fairly small.
Usually when I've hit this situation I'm writing something simple but processor intensive, and it's easier for me (12 years commercial parallel/distributed C programming, amateur python enthusiast) to go back to home ground at this point.
[1]: http://docs.python.org/py3k/library/concurrent.futures.html
Scala, Go, Clojure etc make this so much easier that I think a language jump is reasonable.
Often I have use-cases where my own shared memory system works well http://williamedwardscoder.tumblr.com/post/13363076806/buffc...
> I was writing a custom video editing program in Python (interesting choice of language for that problem) and I wanted to cache decoded frames
Apart from that I really like Python.
For this reason, I actually use QThread in console apps aswell.