Pyston 2 - implementácia Pythonu s kompilátorom JIT

Po trojročnej prestávke vo vývoji bolo zverejnené zahájenie projektu Pyston 2, čo som vyvinulk vysoko výkonnej implementácii jazyka Python s využitím vývoja projektu LLVM.

Implementácia vyniká využitím moderných technológií kompilácie JIT a jeho cieľom je dosiahnuť vysoký výkon podobný tradičným jazykom systému, ako je C ++.

Kód z predchádzajúcich verzií od Pystona bol distribuovaný pod licenciou Apache, ale kód Pyston 2 ešte nie je k dispozícii a pre Ubuntu 18.04 a 20.04 sú vydané iba zostavenia pripravené na použitie (súbor s kódom je k dispozícii na stiahnutie, ale existuje iba útržok s informáciami, že projekt je stále uzavretý) .

Zverejnenie kódu je súčasťou plánov vývojárovale toto sa urobí po dokončení formovania obchodného modelu novej spoločnosti a bolo rozhodnuté pokračovať vo vývoji spoločnosti Pyston bez finančnej podpory spoločnosti Dropbox.

O aplikácii Pyston 2

Na rozdiel od predchádzajúcich verzií Pyston 2 je označený ako stabilný a nie ako skúšobná verzia. Na optimalizácii výkonu sa urobilo veľa práce a Pyston 2 je teraz pri absolvovaní testovacej sady python-macrobenchmarks rýchlejší ako pôvodný Python 3.8, a to zhruba o 20%.

Najvýraznejšie prírastky výkonu sa prejavujú v inherentných pracovných zaťaženiach webových aplikácií. V samostatných testoch, ako sú chaos.py a nbody.py, Pyston 2 prekonáva Python 3.8 o faktor 2. Cena za použitie JIT mierne zvyšuje spotrebu pamäte.

Sme veľmi radi, že môžeme vydať Pyston v2, rýchlejšiu a vysoko kompatibilnú implementáciu programovacieho jazyka Python. Verzia 2 je o 20% rýchlejšia ako štandardný Python 3.8 v našich makrobenchmarkoch. Dôležitejšie je, že vo vašom kóde je pravdepodobne rýchlejší. Pyston v2 môže znížiť náklady na server, znížiť latenciu používateľov a zvýšiť produktivitu vývojárov.

Program Pyston v2 sa dá ľahko implementovať, takže ak hľadáte lepší výkon v jazyku Python, odporúčame vám vyskúšať ho päť minút. To je jeden z najjednoduchších spôsobov, ako urýchliť svoj projekt.

Z hľadiska kompatibility s natívnym Pythonom, projektom Pyston je ponúkaný ako najkompatibilnejšia alternatívna implementácia pre CPython, keďže Pyston je vidlicou hlavnej kódovej základne CPython.

piest podporuje všetky funkcie CPython, vrátane C API pre vývoj rozšírení C. Pyston bol pôvodne vyvinutý spoločnosťou Dropbox, ktorá sa v roku 2017 rozhodla ukončiť interný vývoj. Začiatkom roku 2020 založili poprední vývojári spoločnosti Pyston svoju spoločnosť, úplne znovuobjavili projekt a začali pracovať v spoločnosti Pyston na plný úväzok.

Technické podrobnosti o výplni Pyston 2 zatiaľ nie sú poskytované, spomínajú sa iba DynASM JIT, vložené ukladanie do medzipamäte a všeobecná optimalizácia CPython. Predchádzajúca verzia Pystonu používala po jednom spôsobe JIT, podobne ako JIT v moderných motoroch JavaScriptu.

V JIT bol kód Pythonu analyzovaný a preložený na stredné zastúpenie LLVM (IR, stredné zastúpenie). Ďalej bola IR reprezentácia spracovaná v optimalizátore LLVM a odovzdaná na vykonanie do LLVM JIT enginu, ktorý IR reprezentáciu previedol do strojového kódu.

Na získanie informácií o typoch premenných pre programy v dynamickom jazyku Python bola použitá technika pravdepodobnostnej predikcie typov objektov, po ktorej nasledovalo objasnenie správnej voľby typu počas vykonávania.

Preto Pyston neustále menil vykonávanie medzi dvoma vetvami: rýchlym, keď sa potvrdia predpovedané rýchlosti, a pomalým, ktoré sa používa v prípade nesúladu typov.

Úlohu bolo možné vykonať v režime viacerých vlákien, umožňujúce paralelné vykonávanie niekoľkých vlákien kódu v jazyku Python bez globálneho zámku tlmočníka (GIL).

Konečne ak o tom chcete vedieť viac, môžete skontrolovať podrobnosti v nasledujúci odkaz.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.