Learn Python with Talk Python's Python courses

Can subinterpreters free us from Python's GIL?

Episode #225, published Mon, Aug 12, 2019, recorded Fri, Aug 2, 2019.

This episode is carbon neutral.
Have you heard that Python is not good for writing concurrent asynchronous code? This is generally a misconception. But there is one class of parallel computing that Python is not good at: CPU bound work running the Python layer.

What's the main problem? It's Python's GIL or Global Interpreter Lock of course. Yet, the fix for this restriction may have been hiding inside CPython since version 1.5: subinterpreters.

Join me to talk about PEP 554 with core developer Eric Snow.

Links from the show

Eric on Twitter: @ericsnowcrntly
Eric's "Multi-core Python" project: github.com/ericsnowcurrently/multi-core-python
Blog post (2016): ericsnowcurrently.blogspot.com
Dave Beazley's talk on concurrency (performance): dabeaz.com
PEP 554 ("Multiple Interpreters in the Stdlib"): python.org
CSP: wikipedia.org
Original notes for PEP 554: docs.google.com
CAPI: python.org
Python benchmarks: github.com
Slides from Language Summit 2018: docs.google.com
Slides from Language Summit 2019: docs.google.com

Talk at PyCon US 2019, "to GIL or not to GIL: the Future of Multi-Core (C)Python"
Video: youtube.com
Slides: docs.google.com
Episode transcripts: talkpython.fm

---------- Stay in touch with us ----------
Subscribe on YouTube (for live streams): youtube.com
Follow Talk Python on Twitter: @talkpython
Follow Michael on Twitter: @mkennedy

Want to go deeper? Check out our courses

Eric Snow
Eric Snow
Episode sponsored by
Ads served ethically
Become a friend of the show
Stay in the know and get a chance to win our contests.
See our privacy statement about email communications.