Research Article

Adaptation of MPDATA Heterogeneous Stencil Computation to Intel Xeon Phi Coprocessor

Algorithm 1

Part of MPDATA implementation.
//stage 1
for i-dim
for j-dim
for k-dim
f1[i][j][k] =  xIn[i][j][k] * max(0.0, u1[i][j][k])
-  xIn[i-1][j][k] * (-min(0.0, u1[i][j][k]));
//stage 2
for i-dim
for j-dim
for k-dim
f2[i][j][k] =  xIn[i][j][k] * max(0.0, u2[i][j][k])
-  xIn[i][j-1][k] * (-min(0.0, u2[i][j][k]));
//stage 3
for i-dim
for j-dim
for k-dim
f3[i][j][k] =  xIn[i][j][k] * max(0.0, u3[i][j][k])
-  xIn[i][j][k-1] * (-min(0.0, u3[i][j][k]));
//stage 4
for i-dim
for j-dim
for k-dim
xOut[i][j][k] =  xIn[i][j][k] - (f1[i+1][j][k]
-  f1[i][j][k] + f2[i][j+1][k] - f2[i][j][k]
+  f3[i][j][k+1] - f3[i][j][k])/h[i][j][k];
/**/