Hi! Can anyone help me with this.

I am trying to find out arithmetic intensity of following code, whether the vector is amenable to vector or SIMD execution and if the kernel is executed on a processor with 30GB/sec memory bandwidth will it be memory bound or compute bound.

The code given is:

for (int x=0 x<NX-1 x++)

{ for (int y=0, y<NY-1 ,y++)

{ for (int Z=0, z<NZ-1, z++)

int index x*NY*NZ + y*NZ +z ;

if ( y>0 && x>0)

{

material=IDx [index];

dH1=(Hz[index]-Hz[index-incrementY]/dy[y];

dh2=(Hy[index]-Hy[index-incrementz]/dz[z];

Ex[index]= ca[material]*Ex[index]+cb[material]*(dh2-dh1);

}}}

Assume that dH1,dH2,Hy,Hz,dy,dz,Ca,Cb, and Ex are all single-precision floating-point arrays.Assume IDx is an array of unsigned int