-
Notifications
You must be signed in to change notification settings - Fork 6
Home
Eric Snow edited this page Aug 17, 2018
·
17 revisions
Python's multi-core story is murky at best. Not only can we be more clear on the matter, we can improve Python's support. The result of any effort must make multi-core (and concurrency) support in Python obvious, unmistakable, and undeniable (and keep it Pythonic).
The goal of this project is to do just that, by using the existing subinterpreter C-API. The minimal multi-core solution will involve:
- resolving existing bugs and blockers
- exposing the existing support (from C-API) in a stdlib module
- adding a mechanism to safely "share" basic immutable objects between interpreters
- no longer sharing the GIL between interpreters
At a high level, we're doing the following concrete tasks:
- PEP 554 (Multiple Interpreters in the Stdlib)
- improve interpreter isolation (move fields from
PyRuntimeState
toPyInterpreterState
, including the GIL)
- (2012) Nick Coghlan blog: Volunteer developed free-threaded cross platform virtual machines?
- (2015) Eric Snow on python-ideas: solving multi-core Python
- (2016) Eric Snow blog: Solving Multi-Core Python
- (2017) Eric Snow on python-ideas: Exposing CPython's subinterpreter C-API in the stdlib.
- (2018) Eric Snow at language summit: Subinterpreter support for Python