🌐
Medium
medium.com › @suganthi2496 › subinterpreters-free-threading-in-python-3-13-can-they-double-your-fastapi-throughput-215eea348ad0
🧵 Subinterpreters & Free-Threading in Python 3.13: Can They Double Your FastAPI Throughput? | by Suganthi | Medium
June 7, 2025 - The Global Interpreter Lock (GIL) has long limited Python’s concurrency — until now. Python 3.13 is breaking boundaries with subinterpreters and the nogil prototype.
🌐
Python.org
discuss.python.org › python help
Expected performance characteristics of subinterpreters - Python Help - Discussions on Python.org
May 14, 2024 - I’m testing the subinterpreters interface because I’ll likely be taking advantage of it to improve scaling of this library across multiple threads. Subinterpreters are attractive because: I need more flexible shared memory than multiprocessing can provide.
🌐
Real Python
realpython.com › python312-subinterpreters
Python 3.12 Preview: Subinterpreters – Real Python
May 3, 2024 - The proposed changes in PEP 554, which should come into effect for Python 3.13, are likely more interesting to the average Python developer, especially since they allow you to access this feature from Python. However, they’re really the fundamental building blocks for allowing more user-friendly access to subinterpreters.
🌐
Anthony Shaw
tonybaloney.github.io › posts › sub-interpreter-web-workers.html
Running Python Parallel Applications with Sub Interpreters
November 17, 2023 - In Python 3.12 and ongoing in Python 3.13, the Python standard library extensions written in C are being tested and any global shared state is being moved to a new API that puts that state within either the module, or in the interpreter state.
🌐
PyCon US
us.pycon.org › 2024 › schedule › presentation › 128
Subinterpreters and Free-Threading in Python 3.13
Python 3.12 introduced a new parallel execution model called "sub interpreters" that uses a per-interpreter GIL to unlock a new way of writing parallel code that's faster than multiprocessing. Python 3.13 introduces another new parallel execution model called "free-threading" (previously called ...
🌐
LWN.net
lwn.net › Articles › 985041
Python subinterpreters and free-threading [LWN.net]
August 20, 2024 - The quick conclusion that can be drawn is that "subinterpreters are really like multiprocessing with less overhead and shared memory", he said. Moving on to the free-threading interpreter (which is the preferred term for the no-GIL version), he noted that Python 3.13 beta 1, which had been ...
🌐
GitHub
github.com › faster-cpython › ideas › blob › main › 3.13 › README.md
ideas/3.13/README.md at main · faster-cpython/ideas
We plan three parallelizable pieces of work for 3.13: ... Enabling subinterpreters from Python code (PEP 554).
Author   faster-cpython
🌐
Mouse Vs Python
blog.pythonlibrary.org › home › python 3.13 allows disabling of the gil + subinterpreters
Python 3.13 Allows Disabling of the GIL + subinterpreters - Mouse Vs Python
March 14, 2024 - That means that the GIL will still be on by default in Python 3.13 while they test the GIL-less version and find all the bugs the change causes. Hopefully, by 3.14 or so, they will know all the bugs and have them fixed to some degree or another. A related enhancement are subinterpreters, which Eric Snow has worked on for quite some time.
Find elsewhere
🌐
Stack Overflow
stackoverflow.com › beta › discussions › 77957639 › implications-of-subinterpreters-in-python-3-13
Implications of subinterpreters in Python 3.13 - Stack Overflow
I have experience with using threads in Python, but I came to know that a concept of subinterpreters will be introduced in Python 3.13.
🌐
Reddit
reddit.com › r/programming › python 3.13 beta: the new features and fixes coming soon
r/programming on Reddit: Python 3.13 Beta: The New Features and Fixes Coming Soon
May 11, 2024 - Hopefully there'll be progress on the datetime module fully supporting subinterpreters and the new free-threading builds; it's pretty hard to take advantage of those features if it means you can't deal with times or dates.
🌐
Pyvideo
preview.pyvideo.org › pycon-us-2024 › unlocking-the-parallel-universe-subinterpreters-and-free-threading-in-python-313.html
PyVideo.org · Unlocking the Parallel Universe: Subinterpreters and Free-Threading in Python 3.13
Python 3.12 introduced a new parallel execution model called "sub interpreters" that uses a per-interpreter GIL to unlock a new way of writing parallel code that's faster than multiprocessing.
🌐
GitHub
github.com › jsbueno › extrainterpreters
GitHub - jsbueno/extrainterpreters: Utilities for using Python's PEP 554 subinterpreters
While approved, the PEP is not in its final form, and as of Python 3.13 the interpreters module suggested there is made available as _interpreters. (And before that, in Python 3.13, it is available as _xxsubinterpreters. With the implementation of PEP 684 before Python 3.12, using subinterpreters became a lot more interesting, because each subinterpreter now has an independent GIL.
Starred by 122 users
Forked by 8 users
Languages   Python 96.8% | C 3.2% | Python 96.8% | C 3.2%
🌐
Readthedocs
pythondev.readthedocs.io › subinterpreters.html
Python Subinterpreters — Unofficial Python Development (Victor's notes) documentation
Effects of the EXPERIMENTAL_ISOLATED_SUBINTERPRETERS macro: Good things! Per-interpreter GIL!!! Use a TSS to get the current Python thread state (‘tstate’)
🌐
Python
peps.python.org › pep-0554
PEP 554 – Multiple Interpreters in the Stdlib | peps.python.org
Along with exposing the existing (in CPython) multiple interpreter support, the module will also support a basic mechanism for passing data between interpreters. That involves setting “shareable” objects in the __main__ module of a target subinterpreter. Some such objects, like os.pipe(), may be used to communicate further.
🌐
GitHub
github.com › python › cpython › issues › 138045
Python 3.13 breaks circular imports through single-phase extension modules using non-isolated subinterpreters · Issue #138045 · python/cpython
August 22, 2025 - Python 3.13 breaks circular imports through single-phase extension modules using non-isolated subinterpreters#138045
Author   marcan
🌐
Python documentation
docs.python.org › 3 › whatsnew › 3.12.html
What's New In Python 3.12 — Python 3.14.3 documentation
February 23, 2026 - PEP 684 introduces a per-interpreter GIL, so that sub-interpreters may now be created with a unique GIL per interpreter. This allows Python programs to take full advantage of multiple CPU cores.
🌐
Europython
ep2024.europython.eu › session › python-in-parallel-sub-interpreters-vs-nogil-vs-multiprocessing
Python in Parallel: Sub-Interpreters vs. NoGIL vs. Multiprocessing
A new per-Interpreter GIL in Python 3.12 helps to facilitate true parallelism by opening up sub interpreters to run Python codes at the same time. In addition, it is going to be easier to use these features in Python 3.13 by having support for sub interpreters in the Stdlib.
🌐
Real Python
realpython.com › python314-new-features
Python 3.14: Cool New Features for You to Try – Real Python
August 28, 2025 - For a deeper dive into the backstory, see Python 3.12: Subinterpreters. The Global Interpreter Lock (GIL) ensures that only one thread can execute Python bytecode at a time. While this design has simplified CPython’s memory management for decades, it has also been a fundamental bottleneck for CPU-bound multithreaded applications. Overcoming this limitation has been a major goal for the Python community, and Python 3.14 delivers a significant step forward. In Python 3.13...
🌐
Pycon
in.pycon.org › cfp › 2024 › proposals › unlocking-the-parallel-universe-subinterpreters-and-free-threading-in-python-313~dyP7w
Unlocking the Parallel Universe: Subinterpreters and Free-Threading in Python 3.13 | PyCon India 2024
June 9, 2024 - Python 3.12 introduced a new parallel execution model called "sub interpreters" that uses a per-interpreter GIL to unlock a new way of writing parallel code that's faster than multiprocessing.