
- Single-threaded: 2.75 seconds
- Multi-threaded: 14.3 seconds (not a typo!)
- Multi-processing: 8.7 seconds
In different phrases, for this situation, the CPython no-GIL multithreaded model beats even PyPy at its most optimum. As but, there isn’t a construct of CPython that allows the JIT and makes use of free threading, however such a model is just not distant and will simply change the image even additional.
Conclusion
In sum, PyPy working essentially the most fundamental, unoptimized model of a math-heavy script nonetheless outperforms CPython. However CPython will get drastic relative enhancements from utilizing free-threading and even multiprocessing, the place potential.
Whereas PyPy can’t make the most of these built-in options, its base pace is quick sufficient that utilizing threading or multiprocessing for some jobs isn’t actually required. As an illustration, the n-body drawback is difficult to parallelize properly, and computing pi can hardly be parallelized in any respect, so it’s a boon to have the ability to run single-threaded variations of these algorithms quick.

