Python je programski jezik visoke razine.
Nedavno je objavljena vijest da je Upravni odbor projekta Python najavio je svoju želju da odobri Prijedlog proširenja jezika Python «PEP-0703″, čime globalno zaključavanje tumača postaje izborno u CPythonu i koje u osnovi definira ugradnju CPython načina kompajliranja bez Globalnog zaključavanja tumača (GIL).
PEP-0703 definira prestanak korištenja GIL-a prema zadanim postavkama, ali dodajte opciju izgradnje "–sin-gil" da je onemogućite. Kako sil Očekuje se da će novi način riješiti problem s paralelizacijom operacija na višejezgrenim sustavima, uzrokovano činjenicom da globalno zaključavanje ne dopušta paralelni pristup zajedničkim objektima iz različitih niti.
Spominje se da dugoročno (nakon 5 godina), ljuska se prema zadanim postavkama planira promijeniti samo u globalni način rada bez zaključavanja, dok u isto vrijeme odbacuje podršku za kompajliranje s GIL-om.
Hvala svima što ste odgovorili na anketu o prijedlogu bez GIL-a. Jasno je da je opći osjećaj pozitivan, kako za opću ideju tako i za PEP 703 posebno. Upravni odbor također je uglavnom pozitivan o oba. Namjeravamo prihvatiti PEP 703, iako još uvijek razrađujemo detalje prihvaćanja.
Kao što smo učinili nekoliko puta u prošlosti, želimo priopćiti svoju namjeru da prihvatimo PEP zajedno s našim trenutnim razmišljanjem o detaljima vezanim uz prihvaćanje.
Osim toga, Navodi se da su izmjene koje se planiraju provesti u tri faze, tj. koji su kratkoročni, srednjoročni i dugoročni. S obzirom na to u prvoj fazi, onemogućavanje GIL-a prema zadanim postavkama je nepraktično zbog režijskih troškova povezanih s promjenama skupljača smeća, sustava upravljanja memorijom i primitiva za organiziranje zaključavanja. Na primjer, zbog upotrebe brojanja referenci za izolaciju niti, dolazi do pada performansi za jednonitne skripte (u testnom paketu pyperformance za 10%). U isto vrijeme, možda će biti potrebno onemogućiti GIL u znanstvenom računalstvu, za koje je nedostatak paralelizacije ozbiljniji problem od linearne brzine izvršavanja koda.
U drugoj fazi, uglavnom će se čekati potvrda. te da postoji dovoljna podrška zajednice kako bi se upotreba "non-GIL je održiva" i provjerite je li GIL-less build podržan, ali nije zadani.
U posljednjoj fazi, no-GIL će već biti zadana vrijednost i svi ostaci GIL-a bit će uklonjeni (bez nepotrebnog prekida kompatibilnosti unatrag).
Primjećuje se da rad na udaljavanju od GIL-a bit će obavljen vrlo pažljivo kako se ne bi ponovila pogreška što se dogodilo prilikom promocije Python 3: Izrada koja nije GIL morat će osigurati kompatibilnost sa starijim verzijama Pythona, a sve promjene koda treće strane koje su potrebne za rad na izvedbama koje nisu GIL također bi trebale raditi na GIL izvedbama.
Nema planova za prenumeriranje verzija na Python 4 za gradnje koje nisu GIL, jer će zadržati ABI kompatibilnost.
Tijekom procesa, mi (glavni programeri, ne samo SC) morat ćemo ponovno procijeniti napredak i predložene vremenske rokove. Ne želimo da ovo postane još jedna desetogodišnja borba za kompatibilnost unatrag i želimo biti u mogućnosti otkazati PEP 703 i pronaći drugo rješenje ako se čini da postaje problematično, stoga moramo redovito provjeravati isplati li se nastaviti s radom.
Nadamo se da će ovo razjasniti budućnost PEP-a dok razrađujemo točne detalje prihvaćanja. SC će raditi na dovršetku prihvaćanja u nadolazećim tjednima.
Prije potpunog prijelaza na gradnje bez GIL-a, planiramo postići potpunu podršku zajednice za te gradnje, kao i osigurati dodatne C API-je i Python API-je kako bismo omogućili sigurno višenitnost u postojećem kodu.
Konačno, kao što je već spomenuto, očekuje se da se prijelaz na treću fazu može dogoditi za najmanje 5 godina, a vjerojatni datum za PEP-0703 je izdanje Pythona 3.13, zakazano za sljedeću jesen.
Naps zainteresiran za saznanje više o tome, možete provjeriti detalje U sljedećem linku.