Talks

Unraveling Community Support For Free-Threaded Python

Friday, May 16th, 2025 12:30 p.m.–1:15 p.m. in Hall C

Experience Level:

Advance experience

Description

Shipping the free-threaded build of Python 3.13 was just the first step towards unlocking scalable multithreaded parallelism in Python. To unlock improved performance for real-world compute tasks, the universe of community-maintained open source packages also needed to be updated. This is the story of the first year of that effort.

We will share tools, techniques, and guidance gained from porting Cython, NumPy, SciPy, PyO3, and many other packages with C, Cython, C++, Fortran, and Rust native extensions to support free-threaded Python, illustrated by anecdotes from our experiences.

Attendees will learn about tools and techniques to discover and fix thread safety issues and multithreaded scaling bottlenecks in packages with native extensions or dependencies. If you are unsure about how to support free-threaded Python in a package you maintain, we hope that this talk will give you a plan and the toolbox necessary to accomplish the task.

This talk is targeted at developers and maintainers of Python packages that include native dependencies as well as people who are interested in contributing to community packages that include native code. We assume some prior knowledge with native Python extensions written in C, C++, Rust, or Cython.

Search