VIA - Vertical Profiling and Optimization of Modern Interactive Applications
Due to physical limitations, the growth of clock speed of new computer hardware is slowing down, and hardware architects are forced to realize performance gains by increasing the amount of parallelism, often by increasing the number of cores or hardware threads in a processor. Thus, the most promising approach to support the growing performance demand of applications is to improve their utilization of this increasingly available hardware parallelism.
However, this approach is particularly difficult for the large segment of interactive desktop applications. These applications handle a sequence of a single user´s requests, where a request often depends on the applications´ response to the prior request. Thus, their behavior is inherently sequential, and they do not directly benefit from the increasingly available hardware parallelism.
The goal of the proposed research is to enable the performance improvement of such interactive applications. Since users judge the performance of interactive applications by the perceived latency of their responses, improving performance means reducing the number of responses with perceptible latency. This project will develop means for understanding the causes of perceptible latency and for reducing this latency by utilizing the increasing thread-level parallelism in modern hardware. Specifically, we aim to answer the following questions:
- What are the dominant causes of perceptible latency? To what degree do the different underlying system layers contribute to that latency?
- What is the potential for hiding latency? How far do current interactive applications use thread-level parallelism provided by the hardware? How far do they use system idle time (user think time)?
- How far can the identification of causes of long latency be automated? Can we learn a model of normal system behavior, and use this model to identify these causes?
- How far can optimizations in the framework and virtual machine layers help to reduce latency? Can prediction-based speculative execution of costly operations in these layers help?
- How predictable are user requests in interactive applications? What kind of predictive models are effective at predicting user and application behavior?
Our long-term research goal is to improve the performance of software running on virtual execution environments (known for their software engineering benefits but negative impact on performance) beyond the performance of software running directly on the operating system. This project is a step in this direction, focusing on a class of applications where the most frequently used examples (such as the major office suites, email clients, or web browsers) are still trading the software engineering benefits of higher-level runtime environments for the performance of software running directly on the operating system.