A group of computer scientists at the University of Massachusetts Amherst, headed by Emery Berger, recently showed a prize-winning Python profiler known as Scalene.
Programs written using Python are very slow—up to 60,000 times slower compared to code written using other programming languages—and Scalene efficiently identifies precisely where Python is getting lagged, facilitating programmers to troubleshoot and simplify their code for enhanced performance.
There are several different programming languages—such as Fortran, C++, and Java are a few of the more popular ones—however, in recent years, one language has turned almost universal: Python.
Python is a ‘batteries-included’ language and it has become very popular in the age of data science and machine learning because it is so user-friendly.
Emery Berger, Professor, Computer Science, Manning College of Information and Computer Sciences, University of Massachusetts Amherst
Enabling users to start writing Python code quickly, the language is available with libraries of user-friendly tools and comes with an intuitive and readable syntax.
Computers are no longer getting faster. Future improvements in speed will come less from better hardware and more from faster, more efficient programming. But Python is crazy inefficient. It easily runs between 100 to 1,000 times slower than other languages, and some tasks might take 60,000 times as long in Python.
Emery Berger, Professor, Computer Science, Manning College of Information and Computer Sciences, University of Massachusetts Amherst
Programmers have been aware of this for a long time, and to aid in combatting the inefficiency of Python, they can utilize tools known as “profilers.” Profilers execute programs and then highlight why and which parts are time-consuming.
Current profilers do little to aid Python programmers. At best, they show that an area of code is slow and leave it to the programmer to find out what, if anything, can be done.
The team of Berger included UMass computer science graduate students Sam Stern and Juan Altmayer Pizzorno. The group developed Scalene to be the first profiler that not only accurately finds inefficiencies in Python code but also employs AI to propose how the code can be enhanced.
“Scalene first teases out where your program is wasting time,” Berger states. It concentrates on three fundamental regions—the GPU, CPU, and memory usage—responsible for most of Python’s slow speed.
Once Scalene has found where Python is facing issues keeping up, it employs AI—leveraging the same technology supporting ChatGPT—to propose ways to regulate individual lines or even groupings of code.
This is an actionable dashboard. It’s not just a speedometer telling you how fast or slow your car is going, it tells you if you could be going faster, why your speed is affected, and what you can do to get up to maximum speed. Computers are no longer getting faster. Future improvements in speed will come less from better hardware and more from faster, more efficient programming.
Emery Berger, Professor, Computer Science, Manning College of Information and Computer Sciences, University of Massachusetts Amherst
Scalene has already been extensively used and downloaded over 750,000 times since its public unveiling on GitHub. The National Science Foundation aided the study that resulted in the development of Scalene. A paper elaborating this work appeared at this year’s USENIX Conference on Operating System Design and Implementation, where it won a Best Paper Award.