Librerìa especializada de Python, Numba

 Fuente: https://numba.pydata.org/

Traducción:  Google.

Acelerar funciones de Python

Numba traduce funciones de Python a código de máquina optimizado en tiempo de ejecución utilizando el estándar de la industria LLVM Biblioteca compiladora Los algoritmos numéricos compilados por Numba en Python pueden acercarse a las velocidades de C o FORTRAN.

No es necesario reemplazar el intérprete de Python, ejecutar un paso de compilación por separado o incluso tener instalado un compilador C/C++. Simplemente aplique uno de los decoradores de Numba a su función de Python y Numba hará el resto. 

from numba import njit
import random

@njit
def monte_carlo_pi(nsamples):
    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
 

Construido para informática científica

Numba está diseñado para usarse con matrices y funciones de NumPy. Numba genera código especializado para diferentes tipos de datos de matriz y diseños para optimizar el rendimiento. Los decoradores especiales pueden crear funciones universales que se transmiten a través de matrices NumPy tal como lo hacen las funciones NumPy.

Numba también funciona muy bien con los portátiles Jupyter para informática interactiva y con marcos de ejecución distribuidos, como Dask y Spark. 

@njit(parallel=True)
def logistic_regression(Y, X, w, iterations):
    for i in range(iterations):
        w -= np.dot(((1.0 /
              (1.0 + np.exp(-Y * np.dot(X, w)))
              - 1.0) * Y), X)
    return w
 

Compilación portátil

Envíe aplicaciones Python de alto rendimiento sin el dolor de cabeza de la compilación y el empaquetado binarios. Su código fuente sigue siendo Python puro mientras Numba maneja la compilación en tiempo de ejecución. Probamos Numba continuamente en más de 200 configuraciones de plataforma diferentes.

Numba es compatible con CPU Intel y AMD x86, POWER8/9 y ARM (incluido Apple M1), GPU NVIDIA, Python 3.9-3.12, así como con Windows/macOS/Linux. Los binarios de Numba precompilados para la mayoría de los sistemas están disponibles como paquetes conda y ruedas instalables por pip.

 

 

Comentarios

Entradas más populares de este blog

PySDR: una guía para SDR y DSP usando Python by Dr. Marc Lichtman. Introducciòn.

Colecciones de datos/set