Note that now multithreading has become even faster than multiprocessing. All because new build allows working without the GIL.
A brief explanation.
GIL (Global Interpreter Lock) is a global interpreter lock that allows only a thread of Python bytecode to execute at a time (even if you have 16 cores). So previously, before 3.14, multithreading as such didn't exist in Python.
To bypass GIL, multiprocessing was used. There, each process is a separate interpreter instance and each process has its own GIL. This was only way to parallelize cores in Python. But there was a downside: each process had its own copy of memory, and data had to be serialized when passed. This caused significant overhead.
Now, in the new version without the GIL, threads operate in the same address space with shared memory access. The result is immediately reflected in speed: multithreading is now 33% faster than multiprocessing. In 3.13, by the way, it was exactly the opposite.
Waiting for free-threading support in PyTorch and NumPy - Try Here
🤖 Data Science, ML & Big Data with @DataXplore
