Představen Pyston-lite, JIT kompilátor pro akciový Python

Vývojáři projektu Pyston, který nabízí vysoce výkonnou implementaci jazyka Python pomocí moderních kompilačních technologií JIT, představili rozšíření Pyston-lite s implementací JIT kompilátoru pro CPython. Zatímco Pyston je větví kódové základny CPython a je vyvíjen samostatně, Pyston-lite je navržen jako univerzální rozšíření navržené pro připojení ke standardnímu interpretu Pythonu (CPython).

Pyston-lite vám umožňuje používat základní technologie Pystonu bez změny interpreta instalací dalšího rozšíření pomocí správce balíčků PIP nebo Conda. Pyston-lite je již hostován v repozitářích PyPI a Conda a pro jeho instalaci stačí spustit příkaz „pip install pyston_lite_autoload“ nebo „conda install pyston_lite_autoload -c pyston“. Jsou nabízeny dva balíčky: pyston_lite (přímo JIT) a pyston_lite_autoload (provádí automatickou náhradu JIT při spuštění procesu Pythonu). Je také možné programově řídit začlenění JIT z aplikace bez instalace modulu autoload pomocí funkce pyston_lite.enable().

Přestože Pyston-lite nepokrývá všechny optimalizace dostupné v Pystonu, jeho použití může zlepšit výkon přibližně o 10-25 % ve srovnání s běžným Pythonem 3.8. V budoucnu se plánuje převedení většiny optimalizací přítomných v Pystonu do Pyston-lite a také rozšíření podporovaných verzí CPythonu (první vydání podporuje pouze Python 3.8). Globálnější plány zahrnují spolupráci s týmem CPython na implementaci nových API pro JIT, což umožňuje úplnější kontrolu nad prací Pythonu. O zařazení navrhovaných změn do větve Python 3.12 se diskutuje. V ideálním případě se zvažuje možnost přesunu veškeré funkcionality z Pystonu do rozšíření, což nám umožní vyhnout se údržbě vlastního CPython forku.

Kromě Pyston-lite projekt vydal také aktualizaci plnohodnotného balíčku Pyston 2.3.4, který nabízí nové optimalizace. V testu pyperformance je verze 2.3.4 rychlejší než verze 2.3.3 asi o 6 %. Celkový nárůst výkonu ve srovnání s CPythonem se odhaduje na 66 %.

Navíc si můžeme všimnout optimalizací vyvinutých v rámci vývojového cyklu CPython 3.11 v hlavním projektu, které v některých testech umožnily zvýšit výkon o 25 %. Například v CPythonu 3.11 byla zvýšena efektivita cachování stavu bytecode základních modulů, což zrychlí spouštění skriptů o 10-15%. Volání funkcí bylo výrazně zrychleno a byly přidány specializované rychlé interprety standardních operací. Pracuje se také na portování některých optimalizací připravených projekty Cinder a HotPy.

V rámci projektu nogil navíc probíhají práce na experimentálním režimu pro sestavení CPythonu bez globálního zámku interpretu (GIL, Global Interpreter Lock), který neumožňuje paralelní přístup ke sdíleným objektům z různých vláken, což zabraňuje paralelizaci operací na více -jádrové systémy. Jako další řešení problému GIL se vyvíjí schopnost svázat samostatný GIL na každý interpret běžící v rámci procesu (v jednom procesu může běžet několik interpretů, ale efektivita jejich paralelního provádění závisí na GIL).

Zdroj: opennet.ru

Přidat komentář