Commit 066b4e17 authored by Nandhana Sakhtivel's avatar Nandhana Sakhtivel
Browse files

Added additional parameters

parent 9dbd03e6
Loading
Loading
Loading
Loading
+1 −6
Original line number Diff line number Diff line
@@ -4,21 +4,16 @@ struct io file;

struct ip in;

struct op out;
struct op outparam = {"grid.txt", "coords.txt", "grid_real.bin", "grid_img.bin", "fft.txt", "fft_real.bin", "fft_img.bin", "run.log", ".txt", "timings.dat"};
struct op out, outparam;

struct meta metaData;
struct time timing;
struct parameter param;
struct fileData data;

int w_support = 7;
char filename[1000], buf[30], num_buf[30];
char datapath[900];
int xaxis, yaxis;
int grid_size_x = 2048;
int grid_size_y = 2048;
int num_w_planes = 8;
int rank;
int size;
long nsectors;
+4 −3
Original line number Diff line number Diff line
@@ -96,6 +96,10 @@ extern struct parameter
        int num_threads;
        int ndatasets;
        char datapath_multi[NFILES][900];
        int grid_size_x;
        int grid_size_y;
        int num_w_planes;
        int w_support;
} param;

extern struct fileData
@@ -117,9 +121,6 @@ extern struct sectorlist {
extern char filename[1000], buf[30], num_buf[30];
extern char datapath[900];
extern int xaxis, yaxis;
extern int grid_size_x;
extern int grid_size_y;
extern int num_w_planes, w_support;
extern int rank;
extern int size;
extern long nsectors;
+14 −1
Original line number Diff line number Diff line
@@ -3,6 +3,10 @@ Datapath1 /u/nsakthivel/LOFAR/data/newgauss2noconj_t201806301100_SB
Datapath2              /u/nsakthivel/LOFAR/data/newgauss2noconj_t201806301100_SBL180.binMS/
Datapath3              /u/nsakthivel/LOFAR/data/newgauss2noconj_t201806301100_SBL180.binMS/
num_threads            2
w_support              7
grid_size_x            2048
grid_size_y            2048
num_w_planes           8
ufile		       ucoord.bin
vfile    	       vcoord.bin
wfile                  wcoord.bin
@@ -10,4 +14,13 @@ weightsfile weights.bin
visrealfile            visibilities_real.bin
visimgfile             visibilities_img.bin
metafile               meta.txt
  
outfile                grid.txt
outfile1	       coords.txt
outfile2	       grid_real.bin
outfile3 	       grid_img.bin
fftfile		       fft.txt
fftfile2	       fft_real.bin
fftfile3	       fft_img.bin
logfile                run.log
extension              .txt
timingfile             timings.dat  
+9 −9
Original line number Diff line number Diff line
@@ -11,19 +11,19 @@ void fftw_data(){
        start = clock();
        fftw_plan plan;
        ptrdiff_t alloc_local, local_n0, local_0_start;
        double norm = 1.0/(double)(grid_size_x*grid_size_y);
        double norm = 1.0/(double)(param.grid_size_x*param.grid_size_y);

        // map the 1D array of complex visibilities to a 2D array required by FFTW (complex[*][2])
        // x is the direction of contiguous data and maps to the second parameter
        // y is the parallelized direction and corresponds to the first parameter (--> n0)
        // and perform the FFT per w plane
        alloc_local = fftw_mpi_local_size_2d(grid_size_y, grid_size_x, MPI_COMM_WORLD,&local_n0, &local_0_start);
        alloc_local = fftw_mpi_local_size_2d(param.grid_size_y, param.grid_size_x, MPI_COMM_WORLD,&local_n0, &local_0_start);
        fftwgrid = fftw_alloc_complex(alloc_local);
        plan = fftw_mpi_plan_dft_2d(grid_size_y, grid_size_x, fftwgrid, fftwgrid, MPI_COMM_WORLD, FFTW_BACKWARD, FFTW_ESTIMATE);
        plan = fftw_mpi_plan_dft_2d(param.grid_size_y, param.grid_size_x, fftwgrid, fftwgrid, MPI_COMM_WORLD, FFTW_BACKWARD, FFTW_ESTIMATE);

        long fftwindex = 0;
        long fftwindex2D = 0;
        for (int iw=0; iw<num_w_planes; iw++)
        for (int iw=0; iw<param.num_w_planes; iw++)
        {
            //printf("FFTing plan %d\n",iw);
            //select the w-plane to transform
@@ -98,9 +98,9 @@ void write_fftw_data(){
                      gridss_real[i] = gridss_w[2*i];
                      gridss_img[i] = gridss_w[2*i+1];
              }
              if (num_w_planes > 1)
              if (param.num_w_planes > 1)
              {
                for (int iw=0; iw<num_w_planes; iw++)
                for (int iw=0; iw<param.num_w_planes; iw++)
                for (int iv=0; iv<yaxis; iv++)
                for (int iu=0; iu<xaxis; iu++)
                {
@@ -109,7 +109,7 @@ void write_fftw_data(){
                          fseek(file.pFilereal, global_index, SEEK_SET);
                          fwrite(&gridss_real[index], 1, sizeof(double), file.pFilereal);
                }
                for (int iw=0; iw<num_w_planes; iw++)
                for (int iw=0; iw<param.num_w_planes; iw++)
                for (int iv=0; iv<yaxis; iv++)
                for (int iu=0; iu<xaxis; iu++)
                {
@@ -128,7 +128,7 @@ void write_fftw_data(){
           }
           #else
           /*
               for (int iw=0; iw<num_w_planes; iw++)
               for (int iw=0; iw<param.num_w_planes; iw++)
                 for (int iv=0; iv<grid_size_y; iv++)
                   for (int iu=0; iu<grid_size_x; iu++)
                   {
@@ -160,7 +160,7 @@ void write_fftw_data(){
     double* image_real = (double*) calloc(xaxis*yaxis,sizeof(double));
     double* image_imag = (double*) calloc(xaxis*yaxis,sizeof(double));

     phase_correction(gridss,image_real,image_imag,xaxis,yaxis,num_w_planes,grid_size_x,grid_size_y,resolution,metaData.wmin,metaData.wmax,param.num_threads);
     phase_correction(gridss,image_real,image_imag,xaxis,yaxis,param.num_w_planes,param.grid_size_x,param.grid_size_y,resolution,metaData.wmin,metaData.wmax,param.num_threads);

     end = clock();
     clock_gettime(CLOCK_MONOTONIC, &finish);
+4 −4
Original line number Diff line number Diff line
@@ -91,7 +91,7 @@ void gridding_data(){

    // Create sector grid

    size_of_grid = 2*num_w_planes*xaxis*yaxis;
    size_of_grid = 2*param.num_w_planes*xaxis*yaxis;
    gridss = (double*) calloc(size_of_grid,sizeof(double));
    gridss_w = (double*) calloc(size_of_grid,sizeof(double));
    gridss_real = (double*) calloc(size_of_grid/2,sizeof(double));
@@ -221,7 +221,7 @@ void gridding_data(){
       clock_gettime(CLOCK_MONOTONIC, &begink);
       startk = clock();

       wstack(num_w_planes,
       wstack(param.num_w_planes,
              Nsec,
              metaData.freq_per_chan,
              metaData.polarisations,
@@ -233,7 +233,7 @@ void gridding_data(){
              weightss,
              dx,
              dw,
              w_support,
              param.w_support,
              xaxis,
              yaxis,
              gridss,
@@ -286,7 +286,7 @@ void gridding_data(){
       timing.reduce_time1 += (finishk.tv_sec - begink.tv_sec);
       timing.reduce_time1 += (finishk.tv_nsec - begink.tv_nsec) / 1000000000.0;
       // Go to next sector
       for (long inull=0; inull<2*num_w_planes*xaxis*yaxis; inull++)gridss[inull] = 0.0;
       for (long inull=0; inull<2*param.num_w_planes*xaxis*yaxis; inull++)gridss[inull] = 0.0;

       // Deallocate all sector arrays
       free(uus);
Loading