Monday, September 3, 2007

Browsing Web 3.0 on 3.0 Watts: Why browsers will be parallel

Slides from presentation at Intel

"A man walks into a bar, asks for a cup and starts his browser." A cup is all he needs to turn a phone into a tablet computer.

We live in exciting times. What starts like a joke is actually the near future of personal computing. Phones, growing in compute power and I/O convenience, will eclipse laptops as predicted long ago by Bell's Law. Constantly in our hands, phones will reshape how we use computers. Thanks to the laptop, students no longer had to walk to a computer lab; thanks to the phone, they'll walk to a bar instead.

But isn't the handheld future already here? A web browser is where we spend more and more of our computer time, and the iPhone comes with a usable browser. So, doesn't the iPhone and its browser give us all we need to replace laptops?

No. Laptops are still more productive than phones because the best phone display is five times smaller than the common laptop display. And then there is the browser speed: the iPhone browser is at least 10-times slower than a desktop browser — too slow for the rich, Web 2.0 web pages. When laptops replaced desktops, it was because they matched desktop productivity. We think the same will be true for handhelds. The key difference is that all the phone needs to displace the laptop is a laptop-quality browser experience.

The iPhone browser speed has been blamed on the slow AT&T network but, as we show below, the blame falls on the phone's power-starved processor. But can't we wait a few years for handheld processors to become faster? After all, laptop processors now run nearly as fast as desktop processors at a fraction of power.

Unfortunately, the trend may not continue long enough, due to inherent physical limitations in semiconductor technology. The problem is the high power consumption and heat dissipation, the so-called "power wall."

The good news is that we can build a sufficiently high-performance handheld processor even with today's semiconductor technology, without further silicon shrinking. The bad news is that the high performance would have to be delivered in many-core parallel processor, rather than a single-threaded Pentium successor. The necessity of resorting to many cores is dictated by physics: many low-power cores provide more instructions per second per Watt than a single high-power core.

So, parallelism can break through the power wall and deliver many CPU cycles on low power. Unfortunately, all web browsers are written as sequential programs and will have to be rewritten to split their work onto the many cores. No one knows how to do it because the components of the browser have long been considered nearly inherently sequential. While scientific computing taught us how to write some parallel programs, these supercomputer lessons do not apply to the browser, motivating interesting new computer science research.

These slides, based on a talk we gave at Intel in Aug 16, 2007, describe why handhelds will eclipse laptops and why browsers will need to be parallel for this to happen. We also give some preliminary results from our research into building a parallel browser.

How did we become interested in browsers? We realized that browsers must be parallel while brainstorming about the vision of the Berkeley Par Lab. We identified a few great "killer applications" enabled by many-core processors, but all of these applications were either already parallel or contained components that naturally could be implemented in parallel, such as machine learning. In these applications, the revolutionary role of upcoming manycores was to (i) fit these applications into smaller form factors (on a desktop rather than on a supercomputer) or (ii) make them to run in real time (rather than in batch mode).

Since all our killer applications appeared to be already parallel, we became curious whether the multicore revolution is going to have any impact at all on the sequential software (it has been widely speculated that we would have to start rewriting today's sequential software into parallel). The web browser, predicted to be the new desktop, was the logical sequential application to examine.

Initially, it seemed that browsers currently run fast enough, and will do so even as web pages get richer. However, measuring today's browsers on old laptops suggested that tomorrow's pages will make today's browsers run unacceptably slow (because neither processors nor browsers will become much faster, while page complexity will increase). Furthermore, Bell's Law's insistence that handhelds will soon play the role of laptops nailed it for us: given the CMOS roadmap, there was no way a sequential browser could run fast enough on a phone.

We have a long way to go, but a great goal. If we can build a parallel web browser, tomorrow's handhelds could provide as rich an experience as today's laptops. This would lead us to the next Bell “computer class.”