CPython’s “Global Interpreter Lock”, or “GIL”, prevents multiple threads from executing Python code in parallel. The GIL was added to Python in 1992 together with the original support for threads in order to protect access to the interpreter’s shared state.
Python supports a number of ways to enable parallelism within the constraints of the GIL, but they come with significant limitations. Imagine if you could avoid the startup time of joblib workers, the multiprocess instability of PyTorch’s DataLoaders, and the overhead of pickling data for inter-process communication.
The “nogil” project aims to remove the GIL from CPython to make multithreaded Python programs more efficient, while maintaining backward compatibility and single-threaded performance. It exists as a fork, but the eventual goal is to contribute these changes upstream.
This talk will cover the changes to Python to let it run efficiently without the GIL and what these changes mean for Python programmers and extension authors.
1 view
3
0
10 months ago 00:00:00 1
Türkçe Kaynaklara Katkı - Python ile Threading - Multithreading-II
1 year ago 02:12:47 1
УБИЙЦА С++ и САМЫЙ любимый язык программистов / Всё про Rust / Интервью с Rust Developer
2 years ago 00:38:51 1
“Python Performance Matters“ by Emery Berger (Strange Loop 2022)
2 years ago 00:14:12 5
Polars: The Next Big Python Data Science Library... written in RUST?
2 years ago 00:41:30 1
Multithreaded Python without the GIL
3 years ago 00:36:48 1
Stephan Hügel - Teaching myself Rust through the medium of coordinate system transforms and FFI
4 years ago 00:24:50 11
How to Use Asyncio in MicroPython (Raspberry Pi Pico) | Digi-Key Electronics
4 years ago 00:22:08 5
Asyncio: Understanding Async / Await in Python
4 years ago 00:23:11 1
Low Level Data Extraction from Wikipedia Data with Python
4 years ago 00:20:33 12
How to make your Python code 1000x Faster with Numba