Eq3then d2 2 else d2 1 endif ifm3keq3then d3 2 else d3

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: i3-1) + r(i1+1,i2+1,i3+1)) enddo enddo enddo Stencil Optimization (2D) •  Adjacent stencils use common subexpressions: •  Observation: Cache partial sums for reuse… +++++ +++++ •  Benefits are greater for 3D stencils… +++++ MG Stencil Optimization + + + + + + = + MG Stencil Optimization + + + + rprj3 in Fortran with stencil opt. > > > > > > > > do j3=2,m3j-1 i3 = 2*j3-d3 do j2=2,m2j-1 i2 = 2*j2-d2 do j1=2,m1j i1 = 2*j1-d1 x1(i1-1) = r(i1-1,i2-1,i3 ) + r(i1-1,i2+1,i3 ) + r(i1-1,i2, i3-1) + r(i1-1,i2, i3+1) y1(i1-1) = r(i1-1,i2-1,i3-1) + r(i1-1,i2-1,i3+1) + r(i1-1,i2+1,i3-1) + r(i1-1,i2+1,i3+1) enddo do j1=2,m1j-1 i1 = 2*j1-d1 y2 = r(i1, i2-1,i3-1) + r(i1, i2-1,i3+1) + r(i1, i2+1,i3-1) + r(i1, i2+1,i3+1) x2 = r(i1, i2-1,i3 ) + r(i1, i2+1,i3 ) + r(i1, i2, i3-1) + r(i1, i2, i3+1) s(j1,j2,j3) = 0.5D0 * r(i1,i2,i3) + 0.25D0 * (r(i1-1,i2,i3) + r(i1+1,i2,i3) + x2) + 0.125D0 * ( x1(i1-1) + x1(i1+1) + y2) + 0.0625D0 * ( y1(i1-1) + y1(i1+1) ) enddo enddo enddo Parallel D...
View Full Document

This document was uploaded on 04/04/2014.

Ask a homework question - tutors are online