Pyston-lite, fond Python üçün JIT kompilyatoru təqdim edildi

Müasir JIT kompilyasiya texnologiyalarından istifadə edən Python dilinin yüksək performanslı tətbiqini təklif edən Pyston layihəsinin tərtibatçıları CPython üçün JIT kompilyatorunun tətbiqi ilə Pyston-lite genişləndirilməsini təqdim ediblər. Əgər Pyston CPython kod bazasının bir qoludursa və ayrıca inkişaf edirsə, Pyston-lite standart Python tərcüməçisinə (CPython) qoşulmaq üçün nəzərdə tutulmuş universal genişlənmə kimi nəzərdə tutulub.

Pyston-lite PIP və ya Conda paket menecerindən istifadə edərək əlavə genişləndirmə quraşdıraraq tərcüməçini dəyişmədən əsas Pyston texnologiyalarından istifadə etməyə imkan verir. Pyston-lite artıq PyPI və Conda depolarında yerləşdirilib və quraşdırmaq üçün "pip install pyston_lite_autoload" və ya "conda install pyston_lite_autoload -c pyston" əmrini yerinə yetirmək kifayətdir. İki paket təklif olunur: pyston_lite (birbaşa JIT) və pyston_lite_autoload (Python prosesini başlatarkən avtomatik JIT əvəzetməsini edir). Həmçinin pyston_lite.enable() funksiyasından istifadə edərək, avtomatik yükləmə modulunu quraşdırmadan proqram daxilində JIT-in işə salınmasına proqramlı şəkildə nəzarət etmək mümkündür.

Pyston-lite Pyston-da mövcud olan bütün optimallaşdırmaları əhatə etməsə də, onun istifadəsi adi Python 10 ilə müqayisədə təxminən 25-3.8% performans yaxşılaşması ilə nəticələnə bilər. Gələcəkdə biz Pyston-da mövcud olan optimallaşdırmaların əksəriyyətini Pyston-lite-ə köçürməyi, həmçinin CPython-un dəstəklənən versiyalarını genişləndirməyi planlaşdırırıq (ilk buraxılış yalnız Python 3.8-i dəstəkləyir). Daha qlobal planlardan Python-un işinə daha tam nəzarət etməyə imkan verən JIT üçün yeni API-lərin tətbiqi üzrə CPython komandası ilə birgə iş var. Təklif olunan dəyişikliklərin Python 3.12 filialına daxil edilməsinin müzakirəsi. İdeal olaraq, bütün funksionallığı Pyston-dan genişləndirməyə köçürmək imkanı nəzərdən keçirilir ki, bu da bizə öz CPython çəngəlimizi saxlamaqdan yayınmağa imkan verəcəkdir.

Pyston-lite ilə yanaşı, layihə həm də yeni optimallaşdırmaları ehtiva edən tam hüquqlu Pyston 2.3.4 paketinə yeniləmə buraxdı. Piperformans testində 2.3.4 versiyası buraxılış 2.3.3-dən təxminən 6% daha sürətlidir. CPython üzərində ümumi performans artımı 66% olaraq qiymətləndirilir.

Əlavə olaraq, əsas layihədə CPython 3.11 inkişaf dövrü çərçivəsində hazırlanmış optimallaşdırmaları qeyd edə bilərik ki, bu da bəzi testlərdə performansı 25% artırmağa imkan verdi. Məsələn, CPython 3.11-də baza modullarının bayt kodunun vəziyyətinin keşləşdirilməsinin effektivliyi yaxşılaşdırılıb ki, bu da skriptlərin işə salınmasını 10-15% sürətləndirəcək. Funksiya çağırışları əhəmiyyətli dərəcədə sürətləndirilmiş və tipik əməliyyatların ixtisaslaşmış sürətli tərcüməçiləri əlavə edilmişdir. Cinder və HotPy layihələri tərəfindən hazırlanmış optimallaşdırmaların bir hissəsinin daşınması üçün də işlər aparılır.

Bundan əlavə, nogil layihəsi çərçivəsində qlobal tərcüməçi kilidi (GIL, Global Interpreter Lock) olmadan eksperimental CPython qurma rejimi üzərində iş aparılır ki, bu da müxtəlif mövzulardan paylaşılan obyektlərə paralel girişə imkan vermir, bu da əməliyyatların paralelləşməsinin qarşısını alır. çoxnüvəli sistemlərdə. GIL ilə bağlı problemin başqa bir həlli olaraq, proses daxilində işləyən hər bir tərcüməçiyə ayrıca GIL bağlamaq imkanı hazırlanır (bir prosesdə bir neçə tərcüməçi işləyə bilər, lakin onların paralel icrasının effektivliyi GIL-dən asılıdır).

Mənbə: opennet.ru

Добавить комментарий