Future Tense
Upcoming SlideShare
Loading in...5
×
 

Future Tense

on

  • 5,384 views

A talk I gave at Mozilla's last all-hands about Rust and Servo

A talk I gave at Mozilla's last all-hands about Rust and Servo

Statistics

Views

Total Views
5,384
Views on SlideShare
5,384
Embed Views
0

Actions

Likes
2
Downloads
41
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Future Tense Future Tense Presentation Transcript

  • Future Tense mozilla 1Friday, April 29, 2011
  • Future Tense • “No fate but what we make.” - Sarah Connor, T2 mozilla 1Friday, April 29, 2011
  • Future Tense • “No fate but what we make.” - Sarah Connor, T2 • “Leaders can imagine a world that others don’t. Like Thomas Jefferson or that kid in the Terminator movies.” - Finn, Glee mozilla 1Friday, April 29, 2011
  • Future Tense • “No fate but what we make.” - Sarah Connor, T2 • “Leaders can imagine a world that others don’t. Like Thomas Jefferson or that kid in the Terminator movies.” - Finn, Glee • This talk is about the future, both what it will bring and what we want from it. mozilla 1Friday, April 29, 2011
  • Future Tense • “No fate but what we make.” - Sarah Connor, T2 • “Leaders can imagine a world that others don’t. Like Thomas Jefferson or that kid in the Terminator movies.” - Finn, Glee • This talk is about the future, both what it will bring and what we want from it. • At Mozilla Summit 2010, we launched Rust, a new programming language motivated by safety and concurrency for parallel hardware, the “manycore” future which is upon us. mozilla 1Friday, April 29, 2011
  • Future Tense • “No fate but what we make.” - Sarah Connor, T2 • “Leaders can imagine a world that others don’t. Like Thomas Jefferson or that kid in the Terminator movies.” - Finn, Glee • This talk is about the future, both what it will bring and what we want from it. • At Mozilla Summit 2010, we launched Rust, a new programming language motivated by safety and concurrency for parallel hardware, the “manycore” future which is upon us. • This talk is a recap of motivation and a status report... mozilla 1Friday, April 29, 2011
  • Mobile vs. desktop slowdown • From “Fast and Parallel Webpage Layout”, Meyerovich & Bodik, WWW2010, this chart shows how “the power wall” hurts mobile single-core performance, driving mobile to manycore and requiring a parallel browser engine “real soon now”: mozilla 2Friday, April 29, 2011
  • Data flow in a browser engine • Traditionally mostly single-threaded, using C++ as implementation language, with threads for image decoding, speculative script prefetching, rendering. mozilla 3Friday, April 29, 2011
  • Must parallelize every stage to win • Even use data-parallel (SIMD) instructions as well... Amdahl’s Law bites. mozilla 4Friday, April 29, 2011
  • The “pwn2own” problem mozilla 5Friday, April 29, 2011
  • The “pwn2own” problem • Every browser has endless security vulnerabilities due to lack of safety in the main implementation language (C++, formerly C -- used for speed not safety). mozilla 5Friday, April 29, 2011
  • The “pwn2own” problem • Every browser has endless security vulnerabilities due to lack of safety in the main implementation language (C++, formerly C -- used for speed not safety). • Chrome and Firefox survived this year’s pwn2own contest, but no boasting from Mozilla on this count. And Chrome has been hacked elsewhere, too. mozilla 5Friday, April 29, 2011
  • The “pwn2own” problem • Every browser has endless security vulnerabilities due to lack of safety in the main implementation language (C++, formerly C -- used for speed not safety). • Chrome and Firefox survived this year’s pwn2own contest, but no boasting from Mozilla on this count. And Chrome has been hacked elsewhere, too. • We have millions of lines of C++ in Gecko, both too-often unsafe due to memory management bugs, and mostly single-threaded -- so slow on manycore mobile devices. mozilla 5Friday, April 29, 2011
  • The “pwn2own” problem • Every browser has endless security vulnerabilities due to lack of safety in the main implementation language (C++, formerly C -- used for speed not safety). • Chrome and Firefox survived this year’s pwn2own contest, but no boasting from Mozilla on this count. And Chrome has been hacked elsewhere, too. • We have millions of lines of C++ in Gecko, both too-often unsafe due to memory management bugs, and mostly single-threaded -- so slow on manycore mobile devices. • Adding more threads to utilize multiple cores while fighting security bugs is like team-juggling chainsaws to music where the record player has been sped up! mozilla 5Friday, April 29, 2011
  • Project Servo mozilla 6Friday, April 29, 2011
  • Project Servo • A new, safer systems programming language, Rust, instead of C++ mozilla 6Friday, April 29, 2011
  • Project Servo • A new, safer systems programming language, Rust, instead of C++ • Research building parallel browser engine stages in Rust mozilla 6Friday, April 29, 2011
  • Project Servo • A new, safer systems programming language, Rust, instead of C++ • Research building parallel browser engine stages in Rust • Experiment with Andreas Gal’s DOM implemented in JavaScript mozilla 6Friday, April 29, 2011
  • Project Servo • A new, safer systems programming language, Rust, instead of C++ • Research building parallel browser engine stages in Rust • Experiment with Andreas Gal’s DOM implemented in JavaScript • For a scalably-faster-on-manycore, much safer Browser from the Future mozilla 6Friday, April 29, 2011
  • Project Servo • A new, safer systems programming language, Rust, instead of C++ • Research building parallel browser engine stages in Rust • Experiment with Andreas Gal’s DOM implemented in JavaScript • For a scalably-faster-on-manycore, much safer Browser from the Future • Rust is good for Servers and other Software from the Future, too mozilla 6Friday, April 29, 2011
  • nbody.rs mozilla 7Friday, April 29, 2011
  • Rust performance results (nbody) mozilla 8Friday, April 29, 2011
  • fannkuchredux.rs mozilla 9Friday, April 29, 2011
  • Rust performance results (fannkuch) mozilla 10Friday, April 29, 2011
  • What it all means mozilla 11Friday, April 29, 2011
  • What it all means • First, these are just two of many benchmarks to conquer; Rust is still young. mozilla 11Friday, April 29, 2011
  • What it all means • First, these are just two of many benchmarks to conquer; Rust is still young. • The -rust-unsafe versions are competitive with their -gcc and -clang counterparts (fannkuch-rust-unsafe actually wins!). mozilla 11Friday, April 29, 2011
  • What it all means • First, these are just two of many benchmarks to conquer; Rust is still young. • The -rust-unsafe versions are competitive with their -gcc and -clang counterparts (fannkuch-rust-unsafe actually wins!). • The -rust (safe) versions are currently about twice as slow as the C versions. mozilla 11Friday, April 29, 2011
  • What it all means • First, these are just two of many benchmarks to conquer; Rust is still young. • The -rust-unsafe versions are competitive with their -gcc and -clang counterparts (fannkuch-rust-unsafe actually wins!). • The -rust (safe) versions are currently about twice as slow as the C versions. • We will reduce the cost of safety with ongoing, serious optimization effort. mozilla 11Friday, April 29, 2011
  • What it all means • First, these are just two of many benchmarks to conquer; Rust is still young. • The -rust-unsafe versions are competitive with their -gcc and -clang counterparts (fannkuch-rust-unsafe actually wins!). • The -rust (safe) versions are currently about twice as slow as the C versions. • We will reduce the cost of safety with ongoing, serious optimization effort. • Rust allows unsafe modules and functions, so we can dial in the remaining cost that is not forgiven due to speedups on parallel hardware. mozilla 11Friday, April 29, 2011
  • What it all means • First, these are just two of many benchmarks to conquer; Rust is still young. • The -rust-unsafe versions are competitive with their -gcc and -clang counterparts (fannkuch-rust-unsafe actually wins!). • The -rust (safe) versions are currently about twice as slow as the C versions. • We will reduce the cost of safety with ongoing, serious optimization effort. • Rust allows unsafe modules and functions, so we can dial in the remaining cost that is not forgiven due to speedups on parallel hardware. • The Servo parallel browser engine project is starting, here and now. mozilla 11Friday, April 29, 2011
  • mozilla 12Friday, April 29, 2011