28.11.2014 Views

Lecture 2 – Threads - many-core.group

Lecture 2 – Threads - many-core.group

Lecture 2 – Threads - many-core.group

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.

Update kernel - CPU<br />

// loop over all points in domain (not boundary points)<br />

for (j=1; j < nj-1; j++) {<br />

for (i=1; i < ni-1; i++) {<br />

// find indices into linear memory for this point and neighbours<br />

i00 = I2D(ni, i, j);<br />

im10 = I2D(ni, i-1, j);<br />

... Similarly for others ...<br />

// evaluate derivatives<br />

d2tdx2 = temp_in[im10] - 2*temp_in[i00] + temp_in[ip10];<br />

d2tdy2 = temp_in[i0m1] - 2*temp_in[i00] + temp_in[i0p1];<br />

// update temperatures<br />

temp_out[i00] = temp_in[i00] + tfac*(d2tdx2 + d2tdy2);<br />

}<br />

}

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

Saved successfully!

Ooh no, something went wrong!