Researchers devise AI tool for reasoning about software performance

A team in IIT Delhiresearchers from the computer science department have used AI and machine-learning based techniques to create a tool that decodes the reasons behind the performance level of a software.

The researchers --Shubhankar Suman Singh (Ph.D student) and Prof. Smruti Ranjan Sarangi -- worked in collaboration with NetApp Technologies, Bangalore that funded this project. Their research paper, which elucidates on why a specific software performs better than another one has recentlybeen accepted in a top conference in software engineering.

The tool prepared by the researchers can automatically analyze a software, compare its execution with similar software, and find the root causes for the differences in performance at the level of the source code. It can compare two web browsers or two email clients or even two operating systems (like Windows and Linux) and accurately pinpoint the lines of code that are responsible for the difference in performance.

The team first created a knowledge base by going through 30 million lines of code of the most popular open source programs including open source operating systems such as Linux and FreeBSD Unix. Additionally, they integrated all kinds of textual information into their knowledge base such as code comments and notes in code repositories using the latest NLP (natural language processing) techniques. They then created an AI-based tool that used this knowledge base to analyze the execution of a program and find the root causes behind its low performance. In less than 200 seconds the tool was able to find many reasons for the difference in performance for all kinds of open source software including large open source operating systems, and furthermore these reasons could be correlated with developers' notes or articles in the technical press. Second and third year B.Tech students were able to use this tool seamlessly, and could find the performance bottlenecks in large software in less than 30 minutes.

“This work highlights the potential of AI, natural language processing, and machine learning in making software smart. Companies typically deploy an army of engineers to analyze the performance of their software and find the reasons for slowdowns, and this process can take a very long time. A large part of that can now be done with such futuristic AI-based techniques,” says Prof Sarangi.