Нумба - Numba

Нумба
Оригинальный автор (ы)Continuum Analytics
Разработчики)Общественный проект
изначальный выпуск15 августа 2012 г.; 8 лет назад (2012-08-15)
Стабильный выпуск
0.50.0 / 10 июня 2020; 5 месяцев назад (2020-06-10)
Предварительный выпуск
0.50.0dev0 / 30 марта 2020; 8 месяцев назад (2020-03-30)
Репозиторий Отредактируйте это в Викиданных
Написано вPython, C
Операционная системаКроссплатформенность
ТипТехнические вычисления
Интернет сайтNumba.pydata.org

Нумба - это Открытый исходный код JIT-компилятор что переводит подмножество Python и NumPy в быстрый машинный код, используя LLVM через пакет Python llvmlite. Он предлагает ряд вариантов распараллеливания кода Python для процессоров и графических процессоров, часто с незначительными изменениями кода.

Numba был начат Трэвис Олифант в 2012 году и с тех пор активно развивается на https://github.com/numba/numba с частыми релизами. Проект осуществляется разработчиками из Anaconda, Inc. при поддержке DARPA, Фонда Гордона и Бетти Мур, Intel, Nvidia и AMD, а также сообщества участников на GitHub.

Пример

Numba можно использовать, просто применяя numba.jit декоратор функции Python, выполняющей численные вычисления:

импорт Numbaимпорт случайный@numba.трястиdef monte_carlo_pi(n_samples: int):    соотв = 0    за я в классифицировать(n_samples):        Икс = случайный.случайный()        у = случайный.случайный()        если (Икс**2 + у**2) < 1.0:            соотв += 1    возвращаться 4.0 * соотв / n_samples

В Своевременная компиляция происходит прозрачно, когда функция вызывается:

>>> monte_carlo_pi(1000000)3.14

Сайт Numba по адресу https://numba.pydata.org содержит еще много примеров, а также информацию о том, как добиться хорошей производительности от Numba.

Поддержка GPU

Numba может компилировать функции Python в код графического процессора. В настоящее время доступны два бэкенда:

Альтернативные подходы

Numba - это один из подходов к ускорению работы Python путем компиляции определенных функций, содержащих код Python и Numpy. Существует множество альтернативных подходов для быстрых числовых вычислений с помощью Python, например Cython, TensorFlow, PyTorch, Chainer, Пифран, и PyPy.

Рекомендации