Нумба - Numba

Нумба
Автор (ы) оригинала Continuum Analytics
Разработчики) Общественный проект
изначальный выпуск 15 августа 2012 г . ; 8 лет назад ( 2012-08-15 )
Стабильный выпуск
0.53.1 / 1 апреля 2021 г . ; 3 месяца назад ( 2021-04-01 )
Предварительный выпуск
0.54.0rc2 / 16 июля 2021 г . ; 15 дней назад ( 2021-07-16 )
Репозиторий Отредактируйте это в Викиданных
Написано в Python , C
Операционная система Кроссплатформенность
Тип Технические вычисления
Интернет сайт numba .pydata .org

Numba - это 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, которая выполняет численные вычисления:

import numba
import random

@numba.jit
def monte_carlo_pi(n_samples: int):
    acc = 0
    for i in range(n_samples):
        x = random.random()
        y = random.random()
        if (x**2 + y**2) < 1.0:
            acc += 1
    return 4.0 * acc / n_samples

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

>>> monte_carlo_pi(1000000)
3.14

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

Поддержка GPU

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

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

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

использованная литература