Все знают: если нужно быстро считать – пиши на C. Python – для прототипов, но в продакшене он тормозит. Однако с появлением NumPy и JIT-компиляторов (Numba) границы стираются. Более того, в некоторых случаях Python может даже обогнать наивную реализацию на C.
В этой статье я на примере решения трёхдиагональной системы (алгоритм Томаса) сравниваю:
-
Чистый C (double/float)
-
Векторный NumPy (с циклами на Python)
-
JIT-скомпилированную версию Numba
И не просто сравниваю, а ищу ответ на вопрос: почему Numba иногда быстрее C?



