Your message for list eecs-announce has been forwarded to editor(s):
Speaker: Leo Meyerovich
Advisor: Rastislav Bodik
Date: Monday, May 13th, 2013
Room: 373 Soda Hall
From low-power phones to speed-hungry data visualizations, web browsers need a performance boost. Parallelization is an attractive opportunity because commodity client devices already feature multicore, subword-SIMD, and GPU hardware. However, a typical webpage will not strongly benefit from modern hardware because browsers were only designed for sequential execution. We therefore need to redesign browsers to be parallel. This thesis focuses on a browser component that we found to be particularly challenging: the layout engine.
We address layout engine implementation by identifying its surprising connection with attribute grammars and then solving key ensuing challenges:
1. We show how layout engines, both for documents and data visualization, can often be functionally specified in our extended form of attribute grammars.
2. We introduce a synthesizer that automatically schedules an attribute grammar as a composition of parallel tree traversals. Notably, our synthesizer is fast, simple to extend, and finds schedules that assist aggressive code generation.
3. We make editing parallel code safe by introducing a simple programming construct for partial behavioral specification: schedule sketching.
4. We optimize tree traversals for SIMD, MIMD, and GPU architectures at tree load time through novel data representation and scheduling optimizations.
Put together, we generated a parallel CSS document layout engine that can mostly render complex sites such as Wikipedia. Furthermore, we ran data visualizations in the browser that support interacting with over 100,000 data points in real time.