Numba
# Numba

Numba es un compilador JIT de código abierto que traduce un subset de Python y NumPy en código de máquina usando LLVM, a través del paquete llvmlite de Python. Ofrece una gama de opciones para paralelizar código Python para CPU y GPU, a menudo con solo cambios menores en el código.

Numba fue iniciado por Travis Oliphant en 2012 y desde entonces ha estado en desarrollo activo en GitHub con lanzamientos frecuentes. El proyecto está impulsado por desarrolladores de Anaconda, Inc., con el apoyo de DARPA, la Fundación Gordon y Betty Moore, Intel, Nvidia y AMD, y una comunidad de colaboradores en GitHub.

## Ejemplo

Numba se puede usar simplemente aplicando el decorador numba.jit a una función de Python que hace cálculos numéricos:

La compilación en tiempo de ejecución ocurre de forma transparente cuando se llama a la función:

El sitio web de Numba en contiene más ejemplos, así como información sobre cómo obtener un buen rendimiento de Numba.

## Soporte de GPU

Numba puede compilar funciones de Python en código de GPU. Actualmente hay dos backends disponibles: NVIDIA CUDA y AMD ROCm HSA.

## Aproximaciones alternativas

Numba es un enfoque para hacer que Python sea rápido, compilando funciones específicas que contienen código Python y NumPy. Existen muchos enfoques alternativos para cálculo numérico rápido con Python, como Cython, TensorFlow, PyTorch, Chainer, Pythran y PyPy .

