31.07.2014 Views

Implementing Finite Volume algorithms on GPUs - many-core.group ...

Implementing Finite Volume algorithms on GPUs - many-core.group ...

Implementing Finite Volume algorithms on GPUs - many-core.group ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Avoid flux-update kernel<br />

Initially, performed update as:<br />

calcFlux(u, flux, X COORD) flux = f x (u)<br />

addFlux(u, flux) u = u + f x (u)<br />

calcFlux(u, flux, Y COORD) flux = f y (u)<br />

addFlux(u, flux) u = u + f y (u)<br />

Instead, we can calculate updated soluti<strong>on</strong> directly in extra array:<br />

advanceSoln(u, u plus, X COORD) u + = u + f x (u)<br />

advanceSoln(u plus, u, Y COORD) u = u + + f y (u + )<br />

Time now: 7.13s (126.6×)<br />

<str<strong>on</strong>g>Finite</str<strong>on</strong>g> <str<strong>on</strong>g>Volume</str<strong>on</strong>g> Methods<br />

Laboratory for Scientific<br />

Computing<br />

15 / 22

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

Saved successfully!

Ooh no, something went wrong!