Python multithreading without the GIL
Hi, I've been working on changes to CPython to allow it to run without the global interpreter lock. I'd like to share a working proof-of-concept that can run without the GIL. The proof-of-concept involves substantial changes to CPython internals, but relatively few changes to the C-API. It is compatible with many C extensions: extensions must be rebuilt, but usually require small or no modifications to source code. I've built compatible versions of packages from the scientific Python ecosystem, and they are installable through the bundled "pip". Source code: https://github.com/colesbury/nogil Design overview: https://docs.google.com/document/d/18CXhDb1ygxg-YXNBJNzfzZsDFosB5e6BfnXLlejd... My goal with the proof-of-concept is to demonstrate that removing the GIL is feasible and worthwhile, and that the technical ideas of the project could serve as a basis of such an effort. I'd like to start a discussion about these ideas and gauge the community's interest in this approach to removing the GIL. Regards, Sam Gross colesbury@gmail.com / sgross@fb.com
participants (24)
-
Abdur-Rahmaan Janhangeer
-
Antoine Pitrou
-
Barry Warsaw
-
brataodream@gmail.com
-
Brett Cannon
-
Chris Angelico
-
Chris Jerdonek
-
Christopher Barker
-
Dan Stromberg
-
Daniel Pope
-
Guido van Rossum
-
Larry Hastings
-
Mohamed Koubaa
-
Nathaniel Smith
-
Pablo Galindo Salgado
-
Paul Bryan
-
Reza Roboubi
-
Ronald Oussoren
-
Sam Gross
-
Simon Cross
-
Skip Montanaro
-
Steven D'Aprano
-
Thomas Grainger
-
Łukasz Langa