UCLA computer science professors Miryung Kim and Jens Palsberg, along with UC Irvine computer science professor Harry Xu, were recently awarded a $4.9 million grant from the Office of Naval Research for their project on Synergistic Software Customization. Their project focuses on tackling problems of security and inefficiency in modern software systems through use of de-bloating and de-layering technologies. As the project’s objective states, “we’ve reached a point where many applications are dwarfed by the libraries they import…[which] usually add complexity and bloat to even simple tasks. Thus, we pay for the high programmer productivity with software that has a large attack surface and inefficient execution.” At the culmination of their project, the team aims to deliver tools which will enable developers to easily optimize and customize their software to make it faster and more secure.
Professor Kim expressed her excitement for the grant and its potential to further the project, saying, “It’s great to have this support [from the Office of Naval Research] for our project – the vision of our project is very exciting because of all the real world benefits that our proposed software infrastructure could have on big data system runtimes and machine learning software stacks that tend to be bulky and inefficient with layers of abstractions. Our technical approach is unique in that it synergistically combines three separate thrusts of software engineering and programming languages research together: clone removal, dynamic debloating, and static delayering, pushing the limit of late-stage customization and optimization to the next level.”
Kim’s research focuses on software engineering (SE) support for big data systems – namely, she focuses on improving productivity and debuggability in developing big data analytics applications. Palsberg and Xu’s work, on the other hand, focuses more on programming languages (PL) and compilers, with Xu specializing in finding ways to use PL techniques to address performance bottlenecks related to big data systems. By leveraging each of their research specializations, the team aims to tackle the project with a three-step cycle of functionality reduction, de-bloating, and de-layering: with functionality reduction, they aim to identify unused portions or features of applications to eliminate; with de-bloating, they aim to statically remove these unnecessary or redundant features and code regions. Finally, with de-layering, the software will reduce the layers of abstraction in order to speed up performance. Ideally, the team aims to fully automate this process in order to reduce the effort it takes to make systems more secure and more efficient.
The team held a kickoff meeting for the project on January 26, with several companies and over 35 researchers in attendance. At the meeting, Kim’s team gave an overview of their project as well as their specialized research interests; in addition, the meeting served as a platform for graduate students to share related work and research projects. Researchers from Google, Microsoft Research, Huawei, GitHub, and Hortonworks were also present to deliver talks on a variety of topics and engage with the UCLA-UC Irvine research team.
“[The kickoff meeting] was a great way to not only explain our personal research interests, but also help lay out the vision of our project to other researchers and companies as well as local industries, and spread awareness of [what we’re trying to achieve].”
In the long run, Kim hopes their project will provide programmers with the automated, user-friendly tools needed to customize and simplify unnecessarily bloated and complex software systems. Their research effort will specifically target big data system runtimes and machine learning software stacks that tend to be bulky with a potentially large number of unused functionality and bloated with layers of abstractions and indirections.