Tim naučnika računarstva sa Univerziteta Masačusets Amherst, predvođen Emerijem Bergerom, nedavno je predstavio nagrađivani Python profajler pod nazivom Scalene. Programi napisani pomoću Python-a su notorno spori—do 60.000 puta sporiji od koda napisanog na drugim programskim jezicima—a Scalene radi na tome da efikasno identifikuje tačno gde Python zaostaje, omogućavajući programerima da otklone probleme i pojednostave svoj kod kako bi ostvarili veće performanse.
Postoji mnogo različitih programskih jezika — C++, Fortran i Java su neki od poznatijih — ali poslednjih godina jedan jezik je postao skoro sveprisutan: Python.
„Python je jezik „sa baterijama“, kaže Berger, koji je profesor računarstva na Manning koledžu za informacione i računarske nauke na UMass Amherst, „i postao je veoma popularan u doba masovnih podataka i mašinskog učenja“. Jezik dolazi sa bibliotekama alata lakih za korišćenje i ima intuitivnu i čitljivu sintaksu, omogućavajući korisnicima da brzo počnu da pišu Python kod.
„Ali Python je ludo neefikasan“, kaže Berger. „Često radi između 100 i 1.000 puta sporije od drugih jezika, a neki zadaci mogu trajati 60.000 puta duže u Python-u“.
Programeri to odavno znaju i da bi pomogli u borbi protiv Python-ove neefikasnosti, mogu da koriste alate koji se nazivaju „profajleri“. Profajleri pokreću programe i zatim utvrđuju koji su delovi spori i zašto.
Nažalost, postojeći profajleri iznenađujuće malo pomažu Python programerima. U najboljem slučaju, oni ukazuju na to da je region koda spor i ostavljaju programeru da shvati šta, ako išta, može da se uradi.
Bergerov tim, koji je uključivao diplomirane studente informatike UMass-a Sam Stern i Juan Altmaier Pizzorno, napravio je Scalene da bude prvi profajler koji ne samo da precizno identifikuje neefikasnosti u Python kodu, već koristi AI da predloži kako se kod može poboljšati.
„Scalene prvo otkriva gde vaš program gubi vreme“, kaže Berger. Fokusira se na tri ključne oblasti — CPU, GPU i korišćenje memorije — koje su odgovorne za većinu problema sa performasama.
Jednom kada Scalene identifikuje gde Python ima problema, koristi veštačku inteligenciju – koristeći istu tehnologiju koja podržava ChatGPT – da predloži načine za optimizaciju pojedinačnih ili grupa linija koda. „Ovo je kompletna kontrolna tabla“, kaže Berger. „Nije samo merač koji vam govori koliko brzo ili sporo ide vaš automobil, on vam govori da li biste mogli da idete brže, zašto je vaša brzina mala i šta možete da uradite da biste dostigli maksimalnu brzinu.“
„Računari više ne postaju brži“, kaže Berger. „Buduća poboljšanja brzine dolaziće manje od boljeg hardvera, a više od bržeg, efikasnijeg programiranja.“
Scalene je već u širokoj upotrebi i preuzet je više od 750.000 puta od njegovog objavljivanja na GitHubu. Rad koji opisuje ovaj projekat pojavio se na ovogodišnjoj USENIKS konferenciji o dizajnu i implementaciji operativnih sistema, gde je osvojio nagradu za najbolji rad.