Numba
From Wikipedia, the free encyclopedia
| Numba | ||
|---|---|---|
|
| ||
| Información general | ||
| Tipo de programa | compilador | |
| Autor | Continuum Analytics | |
| Desarrollador | Proyecto comunitario | |
| Información técnica | ||
| Programado en | ||
| Versiones | ||
| Última versión estable | 0.50.0 ( 2020 de marzo del 30) | |
| Enlaces | ||
Numba es un compilador JIT de código abierto que traduce un subconjunto 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.[1]
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.[1][2]
Numba se puede usar simplemente aplicando el decorador numba.jit a una función de Python que hace cálculos numéricos:
import numba
import random
@numba.jit
def monte_carlo_pi(nsamples: int):
acc = 0
for i in range(nsamples):
x = random.random()
y = random.random()
if (x**2 + y**2) < 1.0:
acc += 1
return 4.0 * acc / nsamples
La compilación en tiempo de ejecución ocurre de forma transparente cuando se llama a la función:
>>> monte_carlo_pi(1000000)
3.14
El sitio web de Numba en contiene más ejemplos, así como información sobre cómo obtener un buen rendimiento de Numba.