S'ha introduït Pyston-lite, compilador JIT per a stock Python

Els desenvolupadors del projecte Pyston, que ofereix una implementació d'alt rendiment del llenguatge Python que utilitza tecnologies de compilació JIT modernes, han introduït l'extensió Pyston-lite amb la implementació d'un compilador JIT per a CPython. Si Pyston és una branca de la base de codi CPython i es desenvolupa per separat, aleshores Pyston-lite està dissenyat com una extensió universal dissenyada per connectar-se a l'intèrpret normal de Python (CPython).

Pyston-lite us permet utilitzar les tecnologies bàsiques de Pyston sense canviar l'intèrpret, instal·lant una extensió addicional mitjançant el gestor de paquets PIP o Conda. Pyston-lite ja està allotjat als repositoris PyPI i Conda, i per instal·lar-lo, només cal que executeu l'ordre "pip install pyston_lite_autoload" o "conda install pyston_lite_autoload -c pyston". Es suggereixen dos paquets: pyston_lite (JIT directament) i pyston_lite_autoload (fa la substitució automàtica de JIT quan s'inicia un procés Python). També és possible controlar mitjançant programació l'habilitació de JIT des de l'aplicació sense instal·lar el mòdul de càrrega automàtica, mitjançant la funció pyston_lite.enable().

Tot i que Pyston-lite no cobreix totes les optimitzacions disponibles a Pyston, el seu ús permet millores de rendiment entre un 10 i un 25% respecte a Python 3.8 normal. En el futur, tenim previst portar la majoria de les optimitzacions presents a Pyston a Pyston-lite, així com ampliar les versions admeses de CPython (la primera versió només admet Python 3.8). Dels plans més globals, hi ha un treball conjunt amb l'equip de CPython en la implementació de noves API per a JIT, que permeten un control més complet sobre el treball de Python. Discutir la inclusió dels canvis proposats a la branca Python 3.12. Idealment, es considera la possibilitat de transferir tota la funcionalitat de Pyston a una extensió, la qual cosa ens permetrà allunyar-nos de mantenir la nostra pròpia bifurcació de CPython.

A més de Pyston-lite, el projecte també va publicar una actualització del paquet Pyston 2.3.4 complet, que inclou noves optimitzacions. A la prova de pyperformance, la versió 2.3.4 és més ràpida que la versió 2.3.3 en un 6%. El guany de rendiment global respecte a CPython s'estima en un 66%.

A més, podem destacar les optimitzacions desenvolupades en el marc del cicle de desenvolupament CPython 3.11 en el projecte principal, que en algunes proves ens van permetre augmentar el rendiment un 25%. Per exemple, a CPython 3.11, s'ha millorat l'eficiència de la memòria cau de l'estat del bytecode dels mòduls base, la qual cosa accelerarà el llançament dels scripts en un 10-15%. Les trucades de funció s'han accelerat significativament i s'han afegit intèrprets ràpids especialitzats d'operacions típiques. També s'està treballant per portar algunes de les optimitzacions preparades pels projectes Cinder i HotPy.

A més, en el marc del projecte nogil, s'està treballant en un mode de construcció experimental de CPython sense bloqueig global d'intèrpret (GIL, Global Interpreter Lock), que no permet l'accés paral·lel a objectes compartits des de diferents fils, la qual cosa evita la paral·lelització de les operacions. en sistemes multinucli. Com una altra solució al problema amb el GIL, s'està desenvolupant la capacitat d'enllaçar un GIL independent a cada intèrpret que s'executa dins d'un procés (poden executar-se diversos intèrprets en un procés, però l'efectivitat de la seva execució paral·lela depèn del GIL).

Font: opennet.ru

Afegeix comentari