Adaptive Parallelism in Browsers
Mozilla Research is developing Servo, a parallel web browser engine, to exploit the benets
of parallelism and concurrency in the web rendering pipeline. Parallelization results in
improved performance for pinterest.com but not for google.com. This is because the workload of a browser is dependent on the web page it is rendering. In many cases, the overhead of creating, deleting, and coordinating parallel work outweighs any of its benets. In this work, I model the relationship between web page primitives and a web browser's parallel
performance and energy usage using both regression and classication learning algorithms.
I propose a feature space that is representative of the parallelism available in a web page
and characterize it using seven key features. After training the models to minimize custom-de
ned loss functions, such a model can be used to predict the degree of parallelism available
in a web page and decide the optimal thread conguration to use to render a web page. Such
modeling is critical for improving the browser's performance and minimizing its energy usage.
As a case study, I evaluate the models on Servo's styling stage. Experiments on a quad-core
Intel Ivy Bridge (i7-3615QM) laptop show that we can improve performance and energy
usage by up to 94.52% and 46.32% respectively on the 535 web pages considered in this
study. Looking forward, we identify opportunities to tackle this problem with an online-learning
approach to realize a practical and portable adaptive parallel browser on various
performance- and energy-critical devices.