The Parallel Future Of The Browser

Often need if you have this fine grained parallelism but like I talked about before it’s pretty tricky to actually manage the shared memory on.

Your own and web workers can be really hard to use that’s why.

So few sites and applications are using them today even though they’ve.

Been around for a number of years it would be nice to have a language like Rost which gives you those guarantees that you’re not going to have data races and which makes it easy to work across different cores across these different workers without having to do too much on your own well there’s actually another standard that landed in browsers that.

Can help with this it landed this past year webassembly makes it possible.

Other languages besides just JavaScript in the browser now it doesn’t quite have access to the Dom yet but the working group is working on it and they’re already very close to getting their threading support finished and that will make it possible to efficiently run web assembly across the different cores there are also other things about web assemblies that help.

With application performance it was designed for machines to run it quickly it wasn’t designed to be easy for humans to write and the reason for that is because usually when.

People are writing web assembly they’re not writing it by hand instead they’re writing in the language like Rost or C or C++ that compiles to web assembly so that.

Means that web assembly doesn’t have to be easily readable by programmers and so this means that the engine doesn’t have to do that guesswork to figure out where it can take shortcuts with your code this speed of.

Web assembly even without threading even without multiple cores is what’s making it possible to run PC games in the browser today so these standards webworkers and shared array buffers and webassembly they make it possible for applications to take advantage of parallelism – for example in a framework like react.

You could rewrite the core algorithm in parallel and.

That way the work of figuring out the changes that it needs to makes in the Dom that could be happening across the different cores an ember is already starting to experiment with web assembly for their glimmer vm so they may be.

Able to start introducing some of this parallelism – and take advantage of it and I think we’re gonna see a big.

Shift towards using these standards in frameworks over the next few years so.

Let’s get back to this challenge that we had here are the pieces of the puzzle here’s how we address this challenge this is what browsers need to do to.

Support the new devices and the new.

Types of applications that are coming to the web there’s the coarse grained parallelism of splitting the different content windows in the chrome across different processes there’s the fine grained parallelism of splitting up the work of a single web page so that it can.

Distributed across different cores and then there’s an abling application code to be parallelized as well the coarse grained parallelism is already there in all of the browsers chrome was the first to do this but pretty much all of the browser’s have caught up by now an abling application code to go parallel that’s something that’s happening in standards bodies and it’s being adopted by all.

Of the browsers it’s this fine grained parallelism that’s the low question mark this is where most browsers have done the least so far and it’s actually not clear how to do it in most browsers because the C++ that most browsers are written.

In it’s actually pretty hard to parallel lies in this way but I think that all of the browser’s are going to need to do this we may be the first browser together we may be the first browser to actually get this.

Fine grained parallelism in there and deliver the speed ups but.

We really want all of the browser’s to get there too we want them to all get there with us because that’s the way that we’re going to keep the web going that’s the way that we’re going to keep it healthy and vibrant no matter.

How much the browser’s limits are pushed thank you to.

Be on teller and for having me and thank you all for listening.