The Parallel Browser - University of California,...

29
The Parallel Browser: Synthesis + Parallelization of Layout Engines PLDI 6.13.2012 Beijing, China Leo Meyerovich, Eric Atkinson, Matt Torok, Rastislav Bodik ParLab, UC Berkeley

Transcript of The Parallel Browser - University of California,...

Page 1: The Parallel Browser - University of California, Berkeleyparlab.eecs.berkeley.edu/sites/all/parlab/files/The... · The Parallel Browser: Synthesis + Parallelization of Layout Engines

The Parallel Browser: Synthesis + Parallelization of Layout Engines

PLDI 6.13.2012 Beijing, China

Leo Meyerovich, Eric Atkinson, Matt Torok, Rastislav Bodik ParLab, UC Berkeley

Page 2: The Parallel Browser - University of California, Berkeleyparlab.eecs.berkeley.edu/sites/all/parlab/files/The... · The Parallel Browser: Synthesis + Parallelization of Layout Engines

Where’s the browser?

Page 3: The Parallel Browser - University of California, Berkeleyparlab.eecs.berkeley.edu/sites/all/parlab/files/The... · The Parallel Browser: Synthesis + Parallelization of Layout Engines

here? Surfaces

Page 4: The Parallel Browser - University of California, Berkeleyparlab.eecs.berkeley.edu/sites/all/parlab/files/The... · The Parallel Browser: Synthesis + Parallelization of Layout Engines

here? Surfaces

Big interactive data sets

Page 5: The Parallel Browser - University of California, Berkeleyparlab.eecs.berkeley.edu/sites/all/parlab/files/The... · The Parallel Browser: Synthesis + Parallelization of Layout Engines

can we put it there?

Page 6: The Parallel Browser - University of California, Berkeleyparlab.eecs.berkeley.edu/sites/all/parlab/files/The... · The Parallel Browser: Synthesis + Parallelization of Layout Engines

can we put it there?

Page 7: The Parallel Browser - University of California, Berkeleyparlab.eecs.berkeley.edu/sites/all/parlab/files/The... · The Parallel Browser: Synthesis + Parallelization of Layout Engines

Power Wall

sequential perf = f(power)

Page 8: The Parallel Browser - University of California, Berkeleyparlab.eecs.berkeley.edu/sites/all/parlab/files/The... · The Parallel Browser: Synthesis + Parallelization of Layout Engines

2012 phones

Page 9: The Parallel Browser - University of California, Berkeleyparlab.eecs.berkeley.edu/sites/all/parlab/files/The... · The Parallel Browser: Synthesis + Parallelization of Layout Engines

4 core CPU 128b-wide SIMD 12 core GPU

Tegra 3, S4, OMAP5, …

2012 phones

Page 10: The Parallel Browser - University of California, Berkeleyparlab.eecs.berkeley.edu/sites/all/parlab/files/The... · The Parallel Browser: Synthesis + Parallelization of Layout Engines

CPU Profile of the Top 25 Sites

http://blogs.msdn.com/b/ie/archive/2010/08/30/performance-profiling-how-different-web-sites-use-browser-subsystems.aspx

Page 11: The Parallel Browser - University of California, Berkeleyparlab.eecs.berkeley.edu/sites/all/parlab/files/The... · The Parallel Browser: Synthesis + Parallelization of Layout Engines

CPU Profile of the Top 25 Sites

JavaScript: 20% CPU ~30 talks

http://blogs.msdn.com/b/ie/archive/2010/08/30/performance-profiling-how-different-web-sites-use-browser-subsystems.aspx

Page 12: The Parallel Browser - University of California, Berkeleyparlab.eecs.berkeley.edu/sites/all/parlab/files/The... · The Parallel Browser: Synthesis + Parallelization of Layout Engines

CPU Profile of the Top 25 Sites

JavaScript: 20% CPU ~30 talks

Not JavaScript: 80% CPU ~2 talks

~0 performance solutions

http://blogs.msdn.com/b/ie/archive/2010/08/30/performance-profiling-how-different-web-sites-use-browser-subsystems.aspx

Page 13: The Parallel Browser - University of California, Berkeleyparlab.eecs.berkeley.edu/sites/all/parlab/files/The... · The Parallel Browser: Synthesis + Parallelization of Layout Engines
Page 14: The Parallel Browser - University of California, Berkeleyparlab.eecs.berkeley.edu/sites/all/parlab/files/The... · The Parallel Browser: Synthesis + Parallelization of Layout Engines

The Parallel Browser

parse

layout

render

webpage

pixels

2009, 2010

Page 15: The Parallel Browser - University of California, Berkeleyparlab.eecs.berkeley.edu/sites/all/parlab/files/The... · The Parallel Browser: Synthesis + Parallelization of Layout Engines

The Parallel Browser

parse

layout

render

webpage

pixels

Fail.

Page 16: The Parallel Browser - University of California, Berkeleyparlab.eecs.berkeley.edu/sites/all/parlab/files/The... · The Parallel Browser: Synthesis + Parallelization of Layout Engines

The Parallel Browser

parse

layout

render

webpage

pixels

CSS spec

Page 17: The Parallel Browser - University of California, Berkeleyparlab.eecs.berkeley.edu/sites/all/parlab/files/The... · The Parallel Browser: Synthesis + Parallelization of Layout Engines

The Parallel Browser

parse

layout

render

webpage

pixels

CSS spec formalization

Page 18: The Parallel Browser - University of California, Berkeleyparlab.eecs.berkeley.edu/sites/all/parlab/files/The... · The Parallel Browser: Synthesis + Parallelization of Layout Engines

The Parallel Browser

parse

layout

render

webpage

pixels

CSS spec

FTL synthesizer

formalization

Page 19: The Parallel Browser - University of California, Berkeleyparlab.eecs.berkeley.edu/sites/all/parlab/files/The... · The Parallel Browser: Synthesis + Parallelization of Layout Engines

The Parallel Browser

parse

layout

render

webpage

pixels

CSS spec

FTL synthesizer

formalization

behavioral props

Page 20: The Parallel Browser - University of California, Berkeleyparlab.eecs.berkeley.edu/sites/all/parlab/files/The... · The Parallel Browser: Synthesis + Parallelization of Layout Engines

The Parallel Browser

parse

layout

render

webpage

pixels

CSS spec

FTL synthesizer multicore

SIMD GPU

formalization

behavioral props

Page 21: The Parallel Browser - University of California, Berkeleyparlab.eecs.berkeley.edu/sites/all/parlab/files/The... · The Parallel Browser: Synthesis + Parallelization of Layout Engines

The Parallel Browser

parse

layout

render

webpage

pixels

CSS spec

FTL synthesizer multicore

SIMD GPU

formalization

code gen + algorithms

behavioral props

Page 22: The Parallel Browser - University of California, Berkeleyparlab.eecs.berkeley.edu/sites/all/parlab/files/The... · The Parallel Browser: Synthesis + Parallelization of Layout Engines

The Parallel Browser

parse

layout

render

webpage

pixels

CSS spec

FTL synthesizer multicore

SIMD GPU

formalization

behavioral props

code gen + algorithms

Page 23: The Parallel Browser - University of California, Berkeleyparlab.eecs.berkeley.edu/sites/all/parlab/files/The... · The Parallel Browser: Synthesis + Parallelization of Layout Engines

FTL synthesizer CSS spec

Page 24: The Parallel Browser - University of California, Berkeleyparlab.eecs.berkeley.edu/sites/all/parlab/files/The... · The Parallel Browser: Synthesis + Parallelization of Layout Engines

sched: botUp{w,h} ; topDown{x,y} ; botUp{r}

Leaf Leaf Leaf

synthesize sequence of traversal template instantiations

FTL synthesizer CSS spec

Page 25: The Parallel Browser - University of California, Berkeleyparlab.eecs.berkeley.edu/sites/all/parlab/files/The... · The Parallel Browser: Synthesis + Parallelization of Layout Engines

sched: botUp{w,h} ; topDown{x,y} ; botUp{r}

Leaf Leaf Leaf

Can specify behavior as input instead of as output:

Page 26: The Parallel Browser - University of California, Berkeleyparlab.eecs.berkeley.edu/sites/all/parlab/files/The... · The Parallel Browser: Synthesis + Parallelization of Layout Engines

sched: (botUp{w} || botUp{h}) ; ?{?} ; inorder{?}

sched: botUp{w,h} ; topDown{x,y} ; botUp{r}

Parallelization querying, refinement, and autotuning

Leaf Leaf Leaf

Can specify behavior as input instead of as output:

Page 27: The Parallel Browser - University of California, Berkeleyparlab.eecs.berkeley.edu/sites/all/parlab/files/The... · The Parallel Browser: Synthesis + Parallelization of Layout Engines

End-to-end Results

Page 28: The Parallel Browser - University of California, Berkeleyparlab.eecs.berkeley.edu/sites/all/parlab/files/The... · The Parallel Browser: Synthesis + Parallelization of Layout Engines

End-to-end Results

Multicore 7x speedup on 8 cores

SIMD 4x speedup, 4x energy

GPU 1 million nodes @ 30fps

Page 29: The Parallel Browser - University of California, Berkeleyparlab.eecs.berkeley.edu/sites/all/parlab/files/The... · The Parallel Browser: Synthesis + Parallelization of Layout Engines

Recap

• Parallelize 80% case

• Spec -> synthesizer -> specialized algorithms • Future: smart UI tools that actually work?