Monitor performance issues & errors in your code

Can subinterpreters free us from Python's GIL?

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

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 to us on YouTube: youtube.com
Follow Talk Python on Mastodon: talkpython
Follow Michael on Mastodon: mkennedy

Want to go deeper? Check out our courses

Episode sponsored by
Ads served ethically
Talk Python's Mastodon Michael Kennedy's Mastodon