Introduciuse Pyston-lite, un compilador JIT para Python nativo

Os desenvolvedores do proxecto Pyston, que ofrece unha implementación de alto rendemento da linguaxe Python utilizando tecnoloxías modernas de compilación JIT, presentaron a extensión Pyston-lite cunha implementación do compilador JIT para CPython. Mentres que Pyston é unha rama do código base de CPython e desenvólvese por separado, Pyston-lite está deseñado como unha extensión universal deseñada para conectarse ao intérprete estándar de Python (CPython).

Pyston-lite permítelle utilizar as tecnoloxías básicas de Pyston sen cambiar o intérprete, instalando unha extensión adicional mediante o xestor de paquetes PIP ou Conda. Pyston-lite xa está aloxado nos repositorios PyPI e Conda e para instalalo, só tes que executar o comando "pip install pyston_lite_autoload" ou "conda install pyston_lite_autoload -c pyston". Ofrécense dous paquetes: pyston_lite (directamente JIT) e pyston_lite_autoload (realiza a substitución automática de JIT cando se inicia o proceso de Python). Tamén é posible controlar mediante programación a inclusión de JIT desde a aplicación sen instalar o módulo de carga automática, utilizando a función pyston_lite.enable().

Aínda que Pyston-lite non cobre todas as optimizacións dispoñibles en Pyston, o seu uso pode mellorar o rendemento aproximadamente un 10-25% en comparación co Python 3.8 normal. No futuro, está previsto transferir a maioría das optimizacións presentes en Pyston a Pyston-lite, así como ampliar as versións compatibles de CPython (a primeira versión só admite Python 3.8). Os plans máis globais inclúen a colaboración co equipo de CPython para implementar novas API para JIT, o que permite un control máis completo sobre o traballo de Python. A inclusión dos cambios propostos na rama Python 3.12 estase a discutir. Idealmente, estase a considerar a posibilidade de mover toda a funcionalidade de Pyston á extensión, o que nos permitirá evitar manter a nosa propia bifurcación CPython.

Ademais de Pyston-lite, o proxecto tamén lanzou unha actualización do paquete Pyston 2.3.4 completo, que ofrece novas optimizacións. Na proba de pyperformance, a versión 2.3.4 é máis rápida que a versión 2.3.3 nun 6%. A ganancia de rendemento global en comparación con CPython estímase nun 66%.

Ademais, podemos sinalar as optimizacións desenvolvidas dentro do ciclo de desenvolvemento de CPython 3.11 no proxecto principal, que nalgunhas probas permitiron aumentar o rendemento nun 25%. Por exemplo, en CPython 3.11, aumentou a eficiencia de almacenar en caché o estado de bytecode dos módulos básicos, o que acelerará o lanzamento de scripts nun 10-15%. As chamadas de funcións aceleráronse significativamente e engadíronse intérpretes rápidos especializados de operacións estándar. Tamén se está a traballar para portar algunhas optimizacións preparadas polos proxectos Cinder e HotPy.

Ademais, dentro do proxecto nogil, estase a traballar nun modo experimental para construír CPython sen un bloqueo de intérprete global (GIL, Global Interpreter Lock), que non permite o acceso paralelo a obxectos compartidos desde diferentes fíos, o que impide a paralelización de operacións en varios fíos. - Sistemas básicos. Como outra solución ao problema GIL, estase a desenvolver a capacidade de vincular un GIL separado a cada intérprete que se executa nun proceso (poden estar en execución varios intérpretes nun proceso, pero a eficiencia da súa execución paralela depende do GIL).

Fonte: opennet.ru

Engadir un comentario