Python bez GIL: Kdy rychlost žere víc energie
Ahoj! Dneska se ponořím do tématu, které v pythonovské komunitě právě vře. A není to jen o zrychlení – tady se dočkáte překvapení.
GIL: Ten neslavný brzdící ventil
Když píšeš v Pythonu, jistě jsi slyšel o Global Interpreter Lock, zkratka GIL. Představ si ho jako domovního strážce, co dovolí pracovat jen na jednom jádru procesoru. I když máš hromadu vláken, která chtějí makat současně, GIL říká: "Ne, jen jedno najednou."
Moderní počítače mají jádra v řadě, ale Python je nechává v klidu. Frustrace na dlouhých letech.
Přichází verze bez GIL
Od Pythonu 3.13 existuje experimentální varianta, kde GIL vypneš úplně. Vlákna se rozběhnou volně, jako děti na hřišti bez dozoru.
Perfektní nápad? Počkejte.
Neočekávaný zvrat: Spotřeba energie
Výzkum se podíval nejen na rychlost, ale i na energii. A výsledky jsou šokující.
Kdy to jede na jedničku ⚡
Pro úlohy, co běží skutečně paralelně – třeba zpracování samostatných dat – je no-GIL bomba:
- Čas se zkrátí až 4x
- Energii spotřebuje míň (kratší běh = méně celkem)
- Využije všechna jádra, za která jsi zaplatil
Ideální případ. Rychleji i úsporněji.
Kdy to selže 📈
Pro běžný kód, co běží po sobě (a to je většina), je to katastrofa:
- Spotřeba energie +13–43 %
- Žádné zrychlení
- Více paměti všude
To bolí.
Proč to tak je?
Bez GIL musí každý objekt mít svůj zámek. Běží extra mechanismy pro bezpečnost vláken. Používá jiný správce paměti. Jako kdyby sis najal hlídače ke každému zboží v obchodě místo jednoho u dveří.
Když tvůj kód neparalelizuje, platíš za zbytečnou práci.
Realita v praxi
Tenhle výzkum ukazuje: ne každé vylepšení je super. No-GIL není kouzelná pilulka. Funguje jen tam, kde má smysl, jinak plýtvá.
A v datových centrech, co žerou 1–1,3 % světové elektřiny? Špatný výběr by znamenal obrovské marnění.
Co s tím?
Před skokem na no-GIL se zeptej:
- Běží můj kód paralelně?
- Mám data, co lze zpracovávat najednou?
- Nebo jen klasické sekvenční skripty?
První skupina: Jdeme na to. Druhá: Zůstaň u standardu.
Širší pohled
Proto miluju tech. Vždycky tu jsou skryté kompromisy. Python to udělal volitelně – chytrý tah.
A pamatujte: nestačí "běží rychleji". Energie je klíčová v našem digitálním světě.
Co vy? Zkousíte no-GIL, nebo vás to odradilo? Sdílejte zkušenosti!
Zdroj: https://arxiv.org/pdf/2603.04782