Red de conocimiento informático - Problemas con los teléfonos móviles - Por qué se puede ampliar Python

Por qué se puede ampliar Python

Python es altamente extensible y hay muchas formas de escribir extensiones en C o Fortran. Cuando sea necesario, el código Python puede llamar a estas extensiones directamente como subrutinas. Esta sección analiza algunos de los principales compiladores utilizados para crear extensiones (esta no es una lista completa).

Recomendaciones relacionadas: conceptos básicos de Python

Cython

Cython (a diferencia de CPython) se refiere tanto a un lenguaje como a un compilador. Cython puede liberar explícitamente el GIL en fragmentos de código o funciones completas, y las declaraciones de variables y atributos de clase de tipo C y las llamadas a funciones de C usan sintaxis de C. El resto del código utiliza la sintaxis de Python. Con esta combinación de código Cython, el compilador Cython puede generar código C eficiente. Cualquier compilador C/C que se optimice periódicamente puede compilar este código C, lo que da como resultado un código de tiempo de ejecución extendido altamente optimizado con un rendimiento cercano al código C nativo.

Numba

Numba es un compilador de Python dinámico, justo a tiempo (JIT) y compatible con NumPy que utiliza la infraestructura del compilador LLVM para generar código de máquina optimizado y envoltorios para Call the código de Python. A diferencia de Cython, que está codificado en el lenguaje Python simple, Numba puede leer información de tipo de anotaciones incrustadas en decoradores y optimizar el código. Puede lograr un rendimiento similar a C o Fortran para programas que utilizan estructuras de datos NumPy, como matrices y muchas funciones matemáticas. NumPy utiliza aceleración de hardware para álgebra lineal y funciones matriciales, con LAPACK y BLAS proporcionando aceleración adicional que mejora enormemente el rendimiento para la factorización LU; consulte la publicación del blog de IBM Comparación de velocidades de C, Julia, Python, Numba y Cython.

Además de la CPU, Numba también puede utilizar el backend GP-GPU. Anaconda, la empresa detrás de una de las principales distribuciones de Python, también desarrolló Numba y la versión comercial Numba Pro.

Generador de interfaz de Fortran a Python

El generador de interfaz de Fortran a Python (F2Py) era originalmente un paquete independiente y ahora está incluido en NumPy. F2Py permite a Python llamar a rutinas numéricas escritas en Fortran como si llamara a otro módulo de Python. F2Py admite llamadas de Python a rutinas numéricas escritas en Fortran como si fueran otro módulo de Python. Debido a que el intérprete de Python no puede comprender el código fuente de Fortran, F2Py compila Fortran en código nativo en forma de archivos de biblioteca dinámicos, que son objetos muy disfrutados que contienen funciones con interfaces de módulos de Python. Por lo tanto, Python puede llamar a estas funciones directamente como subrutinas y ejecutarlas con la velocidad y el rendimiento del código nativo de Fortran.