Application Article

A High-Performance Parallel FDTD Method Enhanced by Using SSE Instruction Set

Algorithm 2

//allocate the 1D memory
array_name_tmp = (float*)_aligned_malloc(
 sizeof (float) * x_size * y_size * z_size, 16);
array_name = (float ***)_aligned_malloc (
 sizeof (float**) * x_size, 16);
 for(i = 0; i < x_size; i++) {
  array_name [i] = (float **)_aligned_malloc
   (sizeof (float*) * y_size, 16);
  for(j = 0; j < y_size; j++) {
   //map the 1D memory address to 3D array
   map_address = i * y_size * z_size + j * z_size;
   array_name [i][j] = &array_name_tmp [map_address];