The Web has fundamentally shaped how we think, communicate, and innovate. Over the past decade, the Web's role shifted from solely information retrieval (Web 1.0) to providing interactive user experiences (Web 2.0). Now the Web is once again on the cusp of a new evolution driven by today's most pervasive personal computing platform—mobile devices. I am passionate about enabling next-generation Web applications and thus help shape the landscape of the next era of Web computing.
My Ph.D. research objective is to design a mobile Web computing substrate that will enable Web applications to deliver satisfactory end-user QoS experience without sacrificing energy-efficiency. I take a holistic view of the Web stack, spanning applications, Web browser runtime, and the underlying processor architecture. Prior art has mostly focused on performing optimizations within individual layers separately while relying on the traditional interface to other layers. I believe that improving energy-efficiency while continuing to scale performance of the mobile Web requires us to take a cross-layer approach, that is to enhance the traditional interfaces with new abstractions and to leverage the new interfaces to innovate within each layer.
Conventional wisdom suggests that network capability is the primary bottleneck in mobile Web browsing. In our work, we find that generational advancements in network technology have reached a point where further improving the network latency only leads to marginal performance improvement with potentially high energy consumption. In contrast, the CPU is starting to have noticeable impact on mobile Web browsing performance and energy consumption. Therefore, I focus my research on the CPU side (i.e., client-side computing), and consider various network capabilities (latency and bandwidth) as constraints for performing optimizations within the computation scope.
Web languages are at the interface between applications and Web runtime. Traditionally, Web developers use Web languages to express structure, style, and functionality of an application while relying on the underlying system to perform energy optimizations without compromising user QoS experience. However, without the QoS information, the runtime system might not always effectively reason about the trade-off between QoS and energy consumption. To better guide runtime optimizations, we propose GreenWeb, a set of language extensions that let Web developers express user QoS expectations as program annotations. GreenWeb is based on two new programming abstractions, QoS type and QoS target, that capture two fundamental aspects of user QoS experience. GreenWeb does not pose any constraints on specific runtime implementations but instead supports general energy optimization techniques.
Today's mobile processors are becoming extremely heterogeneous. They often combine general-purpose cores that have different performance and energy characteristics with special-purpose domain-specific cores. While the hardware upheaval promises performance and energy improvements for the mobile Web, current Web runtime systems are not designed to fully exploit the capability of the underlying hardware. The main bottleneck is that current runtime-architecture interface merely exposes the hardware as a monolithic sequential execution model to the runtime system while hiding many architecture-level details. Without having a full visibility of the hardware details, current Web runtimes often lead to energy-inefficient decisions or violate user QoS requirement. To bridge the gap between the architecture complexity and the Web runtime, we design a smart Web browser runtime called WebRT. The core of WebRT is a novel event-based scheduling mechanism that properly provisions the hardware resources while guaranteeing satisfactory user QoS experience.
Traditional mobile CPU designs have been largely adopting desktop-like techniques. However, such a design strategy will come to its end because of the stringent energy and thermal constraint that mobile devices impose. We explore, identify, and design a general-purpose mobile CPU architecture customized and specialized for the Web domain. We call it WebCore. The WebCore incorporates domain-specific hardware units to exploit the unique computation kernels and communication patterns in mobile Web applications. Our vision of the WebCore is that it will be one of the cores in the multicore SoC that is already common in today's mainstream mobile systems.