Počítačoví vědci vyvíjejí open-source nástroj pro dramatické zrychlení programovacího jazyka Python
Tým počítačových vědců z University of Massachusetts Amherst, vedený Emerym Bergerem, nedávno představil oceňovaný Python profiler s názvem Scalene. Programy napsané v Pythonu jsou notoricky pomalé – až 60 000krát pomalejší než kód napsaný v jiných programovacích jazycích – a Scalene pracuje na efektivní identifikaci, kde přesně Python zaostává, což umožňuje programátorům odstraňovat problémy a optimalizovat jejich kód pro vyšší výkon.
Existuje mnoho různých programovacích jazyků — C++, Fortran a Java jsou některé z těch známějších — ale v posledních letech se jeden jazyk stal téměř všudypřítomným: Python.
„Python je jazyk ‚obsahující baterie‘,“ říká Berger, který je profesorem informatiky na Manning College of Information and Computer Sciences na UMass Amherst, „a ve věku datových věd a strojů se stal velmi populárním, protože jeho učení je tak uživatelsky přívětivé." Jazyk je dodáván s knihovnami snadno použitelných nástrojů a má intuitivní a čitelnou syntaxi, která uživatelům umožňuje rychle začít psát kód Pythonu.
"Ale Python je šíleně neefektivní," říká Berger. "Snadno běží 100 až 1 000krát pomaleji než jiné jazyky a některé úlohy mohou v Pythonu trvat 60 000krát déle."
Programátoři to již dávno vědí a v boji s neefektivitou Pythonu mohou používat nástroje zvané „profilery“. Profileři spouštějí programy a pak určují, které části jsou pomalé a proč.
Stávající profilovači bohužel překvapivě málo pomáhají programátorům Pythonu. V nejlepším případě naznačují, že oblast kódu je pomalá, a nechají na programátorovi, aby zjistil, co, pokud vůbec něco, lze udělat.
Bergerův tým, který zahrnoval postgraduální studenty informatiky UMass Sam Stern a Juan Altmayer Pizzorno, postavil Scalene jako první profiler, který nejen přesně identifikuje neefektivnosti v kódu Pythonu, ale také používá AI k navrhování, jak lze kód zlepšit.
"Scalene nejprve zjišťuje, kde váš program ztrácí čas," říká Berger. Zaměřuje se na tři klíčové oblasti – CPU, GPU a využití paměti – které jsou zodpovědné za většinu pomalé rychlosti Pythonu.
Jakmile Scalene identifikuje, kde má Python potíže udržet krok, pak pomocí AI – využívající stejnou technologii, na které stojí ChatGPT – navrhuje způsoby, jak optimalizovat jednotlivé řádky nebo dokonce seskupení kódu. "Toto je funkční přístrojová deska," říká Berger. „Není to jen rychloměr, který vám říká, jak rychle nebo pomalu vaše auto jede, říká vám, jestli byste mohli jet rychleji, proč je vaše rychlost ovlivněna a co můžete udělat, abyste dosáhli maximální rychlosti. “
"Počítače již nejsou rychlejší," říká Berger. "Budoucí vylepšení rychlosti budou méně pocházet z lepšího hardwaru a více z rychlejšího a efektivnějšího programování."