27.01.2015 Views

A Methodology for Fine- Grained Parallelism in JavaScript ...

A Methodology for Fine- Grained Parallelism in JavaScript ...

A Methodology for Fine- Grained Parallelism in JavaScript ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Sluice: EDSL <strong>for</strong> Stream <strong>Parallelism</strong><br />

• Kahn Process Network model of computation<br />

• StreamIt style program construction<br />

function Adder(arg) {<br />

Kernel<br />

Split<br />

Kernel<br />

this.a = arg;<br />

this.work = function() {<br />

Kernel<br />

var e = this.pop();<br />

Kernel ... Kernel Kernel<br />

Kernel Kernel<br />

e = e + this.a;<br />

Kernel<br />

this.push(e);<br />

return false;<br />

Jo<strong>in</strong><br />

Kernel<br />

Kernel<br />

}<br />

}<br />

var add0 = new Adder(1);<br />

var add1 = new Adder(1);<br />

var add2 = new Adder(1);<br />

pipel<strong>in</strong>e split-jo<strong>in</strong> data parallel<br />

var sj = Sluice.SplitRR(1, add0, add1, add2).Jo<strong>in</strong>RR(1);<br />

var p = Sluice.Pipel<strong>in</strong>e(new Count(10), sj, new Pr<strong>in</strong>ter());<br />

> p.run()<br />

1 2 3 4 5 6 7 8 9 10

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!