Pyston febrer 2 implementació de Python amb un compilador JIT

Després d'una pausa de tres anys en el desenvolupament, s'ha publicat el llançament del projecte Pyston 2, que desenvolupoa una implementació d'alt rendiment del llenguatge Python utilitzant els desenvolupaments del projecte LLVM.

la implementació es destaca per l'ús de tecnologies de compilació JIT modernes i té com a objectiu assolir un alt rendiment similar al dels llenguatges de sistema tradicionals com C++.

El codi de versions anteriors de Pyston es va distribuir sota la llicència d'Apache, però el codi de Pyston 2 encara no està disponible i només es publiquen compilacions llestes per utilitzar per a Ubuntu 18.04 i 20.04 (un fitxer amb el codi està disponible per descarregar però només hi ha un codi auxiliar amb informació que el projecte encara està tancat) .

Publicar el codi és part dels plans dels desenvolupadors, però això es farà després que s'hagi completat la formació del model de negoci de la nova empresa i s'hagi decidit continuar desenvolupant Pyston sense el suport financer de Dropbox.

Sobre Pyston 2

A diferència de les versions anteriors, Pyston 2 està marcat com a estable i no com a versió de prova. S'ha treballat molt per optimitzar el rendiment i Pyston 2 és ara més ràpid que l'original Python 3.8 en aproximadament un 20% en aprovar el conjunt de proves python-macrobenchmarks.

Els guanys de rendiment més notables s'observen a les càrregues de treball inherents a les aplicacions web. En proves separades com chaos.py i nbody.py, Pyston 2 supera Python 3.8 per un factor de 2. El cost dutilitzar JIT és un lleuger augment en el consum de memòria.

Estem molt emocionats de llançar Pyston v2, una implementació més ràpida i altament compatible del llenguatge de programació Python. La versió 2 és un 20% més ràpida que la Python 3.8 estàndard als nostres macrobenchmarks. Més important encara, és probable que sigui més ràpid al vostre codi. Pyston v2 pot reduir els costos del servidor, reduir les latències dels usuaris i millorar la productivitat del desenvolupador.

Pyston v2 és fàcil dimplementar, de manera que si està buscant un millor rendiment de Python, us recomanem que es prengui cinc minuts i proveu Pyston . Fer-ho és una de les maneres més fàcils d'accelerar el seu projecte.

En termes de compatibilitat amb Python nadiu, el projecte Pyston es promociona com la implementació alternativa més compatible amb CPython, ja que Pyston és una bifurcació del codi base principal de CPython.

Pyston admet totes les funcions de CPython, inclosa l'API C per desenvolupar extensions C. Pyston va ser desenvolupat originalment per Dropbox, que el 2017 va decidir interrompre el desenvolupament intern. A principis de 2020, els principals desenvolupadors de Pyston van fundar la seva empresa, van reinventar per complet el projecte i van començar a treballar a Pyston a temps complet.

Encara no es proporcionen detalls tècnics sobre el farciment de Pyston 2, només s'esmenten DynASM JIT, emmagatzematge en memòria cau en línia i optimitzacions generals de CPython. La versió anterior de Pyston feia servir un JIT de mètode alhora, similar al JIT dels motors JavaScript moderns.

A JIT, el codi de Python es va analitzar i traduir a una representació intermèdia LLVM (IR, Representació intermèdia). A més, la representació IR es va processar a l'optimitzador LLVM i es va passar per a la seva execució al motor LLVM JIT, que va convertir la representació IR en codi de màquina.

Per obtenir informació sobre els tipus de variables per a programes en el llenguatge dinàmic Python, es va utilitzar la tècnica de predicció probabilística de tipus d'objectes, seguida de l'aclariment de l'elecció correcta del tipus durant l'execució.

Per tant, Pyston va variar constantment l'execució entre dues branques: la ràpida, quan es confirmen els tipus predits, i la lenta, que es fa servir en cas d'una discrepància de tipus.

El treball podria realitzar-se en mode multiprocés, permetent l'execució en paral·lel de diversos fils de codi al llenguatge Python i lliure del bloqueig global de l'intèrpret (GIL, global interpreter lock).

Finalment si vols conèixer més a l'respecte, Pots consultar els detalls al següent enllaç.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.