Python presenta a Numba, un compilador de alto rendimiento

Numba, un compilador público justo a tiempo (JIT) fue publicado recientemente por Anaconda. Convierte ciertos códigos de Python y NumPy en código máquina eficiente.

Cuando se invoca Numba, el nuevo compilador convierte las funciones de Python en código de máquina que es desde dos veces (para operaciones simples de NumPy) hasta cien veces (para bucles sofisticados de Python) más rápido.

Prueba todo lo que Numba tiene para ofrecer desde aquí.

Los “decoradores” de Numba son una poderosa herramienta para automatizar la compilación de tus funciones.

Como resultado, siempre que el código ejecute una función decorado con Numba, puede hacerlo a la misma velocidad que si estuviera escrito en código de máquina.

  • SO: Windows (32 y 64 bits), OSX, Linux (32 y 64 bits). Soporte no oficial en BSD.
  • Arquitectura: x86, x86_64, ppc64le, armv7l, armv8l (aarch64). Soporte no oficial en M1/Arm64.
  • GPU: Nvidia CUDA.
  • CPython
  • NumPy 1.18 – última versión

No se recomienda compilar Numba desde la fuente si eres un usuario primerizo. Debido a su función central, la dependencia de otros componentes está estrictamente limitada.

Sin embargo, se pueden agregar los siguientes paquetes opcionales para ampliar las capacidades del sistema:

  • Scipy hace posible compilar funciones Numpy-.linalg.
  • Colorama permite el uso de resaltado de color en mensajes de error y backtraces.
  • pyyaml admite la configuración de Numba a través de un archivo de configuración YAML.
  • IntelSVML (biblioteca matemática vectorial corta de alto rendimiento, solo x86 64) se puede usar con icc_rt. Los consejos de rendimiento proporcionan instrucciones de instalación.

¿Como funciona Numba?

Para una función decorada escrita en Python, Numba leerá el código de bytes y lo combinará con información sobre los tipos de argumentos pasados a la función.

Cuando termina de analizar y optimizar el código, utiliza la biblioteca del compilador LLVM para generar código de máquina para que tu función se ejecute sin problemas en tu CPU.

Cada vez que utilices esa función, se utilizará esa versión construida.

En la medida en que tu CPU admite la ejecución en modo nopython o al menos la compilación de ciertos bucles, Numba optimizará tu compilación para tu hardware.

Es posible ver un aumento de velocidad importante según la tarea en cuestión.

Numba te ofrece muchas opciones para paralelizar fácilmente el código en CPU y GPU con pocas modificaciones:

  • Racionalización de subprocesos: Numba ejecuta automáticamente expresiones de matriz NumPy en varios núcleos de CPU, lo que simplifica la creación de bucles paralelos.
  • Vectorización SIMD: Numba puede transformar ciertos bucles en instrucciones vectoriales, lo que resulta en aumentos de rendimiento de 2 a 4 veces. Numba se puede ejecutar en CPU compatibles con SSE, AVX o AVX-512, ya que se ajusta automáticamente para aprovechar al máximo las funciones del procesador.
  • Aceleración GPU: Numba es la biblioteca de Python elegida, ya que permite escribir algoritmos de GPU paralelos desde cero sin dejar de ser compatible con NVIDIA CUDA.

Relacionado

Vulture: Encuentra el código muerto en Python

Vulture encuentra código no utilizado dentro de código creado con Python. Esto es útil para limpiar y encontrar errores en bases de código grandes. Debido a la naturaleza dinámica de Python, es probable que los analizadores de código estático como Vulture no detecten algún código muerto. Además, el código que solo se llama implícitamente puede ser notificado como código no utilizado. No obstante, Vulture puede ser ¡SEGUIR LEYENDO!

Vidgear: Librería de Python para el procesamiento de vídeo

VidGear es una poderosa biblioteca de procesamiento de video en Python construida con Gears de subprocesos múltiples, cada uno con un conjunto único de características innovadoras. Estas API proporcionan un contenedor fácil de usar, altamente extensible y multihilo alrededor de muchas bibliotecas subyacentes de última generación como OpenCV ➶, FFmpeg ➶, picamera ➶, pafy ➶, pyzmq ➶ y python-mss ➶. El siguiente diagrama de bloques funcional ¡SEGUIR LEYENDO!

Uscrapper: Raspador web OSINT de recopilación de datos personales

Presentamos Uscrapper 2.0, un potente webscrapper OSINT que permite a los usuarios extraer diversa información personal de un sitio web. Aprovecha técnicas de raspado web y expresiones regulares para extraer direcciones de correo electrónico, enlaces de redes sociales, nombres de autores, ubicaciones geográficas, números de teléfono y nombres de usuario de fuentes con y sin hipervínculos en la página web, admite subprocesos múltiples para acelerar este ¡SEGUIR LEYENDO!

Tutoriales RIP: Más de 300 Guías de Programación y Tecnología basadas en Contenidos de Stack Overflow

Las guías de RIP TUTORIAL (+300) son un proyecto de ZZZ Proyects (‎una empresa dedicada a añadir valor a la comunidad .NET) que consta en la creación de libros con contenidos extraídos de Stack Overflow. Por lo que he observado, los contenidos son de 2016/17, pese a eso. Lo considero un contenido útil. Muchas guías son una simple instalación o inicio a un contenido; pero las ¡SEGUIR LEYENDO!

Thonny: Un Ide de Python específico para principiantes y Raspberry Pi

Thonny es un nuevo IDE de Python para aprender y enseñar programación que puede hacer que la visualización de programas sea una parte natural del flujo de trabajo de los principiantes. Entre sus características destacadas se encuentran diferentes formas de recorrer el código, la evaluación paso a paso de la expresión, la visualización intuitiva de la pila de llamadas y un modo para explicar los conceptos ¡SEGUIR LEYENDO!

Salir de la versión móvil