Predstavljen Pyston-lite, JIT kompajler za standardni Python

Programeri projekta Pyston, koji nudi visokoučinkovitu implementaciju jezika Python korištenjem modernih tehnologija JIT kompilacije, predstavili su proširenje Pyston-lite s implementacijom JIT prevoditelja za CPython. Dok je Pyston ogranak CPython kodne baze i razvija se zasebno, Pyston-lite je dizajniran kao univerzalno proširenje dizajnirano za povezivanje sa standardnim Python tumačem (CPython).

Pyston-lite vam omogućuje korištenje osnovnih Pyston tehnologija bez mijenjanja tumača, instaliranjem dodatnog proširenja pomoću upravitelja paketa PIP ili Conda. Pyston-lite već se nalazi u repozitoriju PyPI i Conda i da biste ga instalirali, samo pokrenite naredbu “pip install pyston_lite_autoload” ili “conda install pyston_lite_autoload -c pyston”. U ponudi su dva paketa: pyston_lite (izravno JIT) i pyston_lite_autoload (izvodi automatsku JIT zamjenu kada se pokrene Python proces). Također je moguće programski kontrolirati uključivanje JIT-a iz aplikacije bez instaliranja modula za automatsko učitavanje, pomoću funkcije pyston_lite.enable().

Iako Pyston-lite ne pokriva sve optimizacije dostupne u Pystonu, njegova upotreba može poboljšati performanse za otprilike 10-25% u usporedbi s uobičajenim Pythonom 3.8. U budućnosti se planira prenijeti većinu optimizacija prisutnih u Pystonu na Pyston-lite, kao i proširiti podržane verzije CPythona (prvo izdanje podržava samo Python 3.8). Globalniji planovi uključuju suradnju s CPython timom za implementaciju novih API-ja za JIT, omogućujući potpuniju kontrolu nad radom Pythona. Raspravlja se o uključivanju predloženih promjena u granu Python 3.12. U idealnom slučaju, razmatra se mogućnost premještanja svih funkcionalnosti iz Pystona u proširenje, što će nam omogućiti da izbjegnemo održavanje vlastitog CPython forka.

Uz Pyston-lite, projekt je također objavio ažuriranje potpunog paketa Pyston 2.3.4, koji nudi nove optimizacije. U pyperformance testu, verzija 2.3.4 brža je od izdanja 2.3.3 za oko 6%. Ukupni dobitak performansi u usporedbi s CPythonom procjenjuje se na 66%.

Dodatno, možemo primijetiti optimizacije razvijene u okviru razvojnog ciklusa CPython 3.11 u glavnom projektu, što je u nekim testovima omogućilo povećanje performansi za 25%. Na primjer, u CPython 3.11 povećana je učinkovitost predmemoriranja stanja bajt koda osnovnih modula, što će ubrzati pokretanje skripti za 10-15%. Značajno su ubrzani pozivi funkcija i dodani su specijalizirani brzi interpreteri standardnih operacija. Također je u tijeku rad na prijenosu nekih optimizacija koje su pripremili projekti Cinder i HotPy.

Dodatno, unutar nogil projekta radi se na eksperimentalnom modu za izgradnju CPythona bez zaključavanja globalnog tumača (GIL, Global Interpreter Lock), koji ne dopušta paralelni pristup zajedničkim objektima iz različitih niti, što onemogućuje paralelizaciju operacija na multi -jezgreni sustavi. Kao još jedno rješenje problema GIL-a, razvija se mogućnost vezivanja zasebnog GIL-a za svaki interpreter koji se izvodi unutar procesa (više interpretera može raditi u jednom procesu, ali učinkovitost njihovog paralelnog izvođenja ovisi o GIL-u).

Izvor: opennet.ru

Dodajte komentar