Pyston 2 un'implementazione di Python con un compilatore JIT

Dopo una pausa di tre anni nello sviluppo, pubblicato il lancio del progetto Pyston 2, cosa ho sviluppatoa un'implementazione ad alte prestazioni del linguaggio Python utilizzando gli sviluppi del progetto LLVM.

L'implemento si distingue per l'uso delle moderne tecnologie di compilazione JIT e mira a ottenere prestazioni elevate simili ai linguaggi di sistema tradizionali come C ++.

Il codice delle versioni precedenti di Pyston è stato distribuito con la licenza Apache, ma il codice Pyston 2 non è ancora disponibile e vengono rilasciate solo build pronte all'uso per Ubuntu 18.04 e 20.04 (un file con il codice è disponibile per il download ma c'è solo uno stub con informazioni che il progetto è ancora chiuso).

La pubblicazione del codice fa parte dei piani degli sviluppatorima questo sarà fatto dopo che la formazione del modello di business è stata completata della nuova società e si è deciso di continuare a sviluppare Pyston senza il supporto finanziario di Dropbox.

Informazioni su Pyston 2

A differenza delle versioni precedenti, Pyston 2 è contrassegnato come stabile e non come versione di prova. È stato fatto molto lavoro per ottimizzare le prestazioni e Pyston 2 è ora più veloce del Python 3.8 originale di circa il 20% quando si supera la suite di test python-macrobenchmarks.

I miglioramenti delle prestazioni più notevoli si riscontrano nei carichi di lavoro delle applicazioni Web intrinseche. In test separati come chaos.py e nbody.py, Pyston 2 supera Python 3.8 di un fattore 2. Il costo dell'utilizzo di JIT è un leggero aumento del consumo di memoria.

Siamo molto entusiasti di rilasciare Pyston v2, un'implementazione più veloce e altamente compatibile del linguaggio di programmazione Python. La versione 2 è più veloce del 20% rispetto allo standard Python 3.8 nei nostri macrobenchmark. Ancora più importante, è probabilmente più veloce nel codice. Pyston v2 può ridurre i costi del server, ridurre le latenze degli utenti e migliorare la produttività degli sviluppatori.

Pyston v2 è facile da implementare, quindi se stai cercando prestazioni migliori di Python, ti consigliamo di prenderti cinque minuti e provare Pyston. In questo modo è uno dei modi più semplici per accelerare il tuo progetto.

In termini di compatibilità con Python nativo, il progetto Pyston è pubblicizzato come l'implementazione alternativa più compatibile per CPython, poiché Pyston è un fork della base di codice principale di CPython.

Pistone supporta tutte le funzioni CPython, inclusa l'API C per lo sviluppo di estensioni C. Pyston è stato originariamente sviluppato da Dropbox, che nel 2017 ha deciso di interrompere lo sviluppo interno. All'inizio del 2020, i migliori sviluppatori di Pyston hanno fondato la loro azienda, reinventato completamente il progetto e hanno iniziato a lavorare a tempo pieno presso Pyston.

I dettagli tecnici sul riempimento di Pyston 2 non sono ancora stati forniti, vengono menzionati solo DynASM JIT, caching inline e ottimizzazioni CPython generali. La versione precedente di Pyston utilizzava un metodo JIT alla volta, simile al JIT nei moderni motori JavaScript.

In JIT, il codice Python è stato analizzato e tradotto a una rappresentazione intermedia LLVM (IR, rappresentazione intermedia). Inoltre, la rappresentazione IR è stata elaborata nell'ottimizzatore LLVM e passata al motore JIT LLVM per l'esecuzione, che ha convertito la rappresentazione IR in codice macchina.

Per ottenere informazioni sui tipi di variabili per programmi in linguaggio Python dinamico, è stata utilizzata la tecnica di previsione probabilistica dei tipi di oggetto, seguita dal chiarimento della corretta scelta del tipo durante l'esecuzione.

Pertanto, Pyston ha variato costantemente l'esecuzione tra due rami: quello veloce, quando vengono confermate le velocità previste, e quello lento, che viene utilizzato in caso di mancata corrispondenza del tipo.

Il lavoro potrebbe essere svolto in modalità multithread, consentendo l'esecuzione parallela di diversi thread di codice nel linguaggio Python e libero dal blocco dell'interprete globale (GIL).

Infine se vuoi saperne di più, puoi controllare i dettagli nel file seguente link


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.