Assistant Professor of Computer Science Harry Xu is developing a novel approach to counter software runtime redundancies and performance-blocking inefficiencies—known as “software bloat”—thanks to funding from the Office of Naval Research.
“Much evidence shows that seemingly harmless performance problems can lead to severe scalability reductions and financial losses. Even mature software written by expert engineers has had performance problems that caused serious and highly publicized incidents,” Xu says. “In fact, the levels of inefficiencies in real-world software grow surprisingly fast. There is an ever-increasing demand for performance optimization in modern software, especially when processor-core clock speed has reached a practical limit and the performance ‘free lunch’ the software community has enjoyed so far from hardware advances will not exist anymore.”
In response, Xu has contributed to state-of-the-art static and dynamic program analysis techniques that can identify bloat patterns in program source code or during execution. Xu notes, “It remains largely unknown whether and how the penalty of over-general implementations can be automatically optimized away and at what level techniques should be developed.” He proposes instead an optimization technique called Library Auto-Selection (LAS).
LAS combines both the developer’s insights and compiler and runtime system support to automatically remove inefficiencies in software. It targets a broad class of performance issues in object-oriented programs resulting from generalized implementations of libraries. Acording to Xu, using developers’ domain insights and runtime support in tandem, LAS will allow users to “dynamically determine the optimal implementation for a data structure or algorithm” and “safely switch to this new implementation at run time for increased efficiency.”