diff --git a/w-stacking-fftw.c b/w-stacking-fftw.c index 5cb80a12a01026c0e3f89f40825b51d691e91879..f13b3c188bee33b4dc5769f8888f4b63de73805b 100644 --- a/w-stacking-fftw.c +++ b/w-stacking-fftw.c @@ -104,8 +104,8 @@ int main(int argc, char * argv[]) double resolution; // Mesh related parameters: global size - int grid_size_x = 2048; - int grid_size_y = 2048; + int grid_size_x = 4096; + int grid_size_y = 4096; // Split Mesh size (auto-calculated) int local_grid_size_x; int local_grid_size_y; @@ -219,7 +219,7 @@ if(rank == 0){ // INPUT FILES (only the first ndatasets entries are used) int ndatasets = 1; - strcpy(datapath_multi[0],"/homes/gheller/lofar2/gheller/binMS/ZW2_IFRQ_0-1-5.binMS/"); + strcpy(datapath_multi[0],"/m100_scratch/userexternal/cgheller/SKA3/ZW2_IFRQ_0-1-5.binMS/"); strcpy(datapath,datapath_multi[0]); // Read metadata @@ -244,8 +244,8 @@ if(rank == 0){ // WATCH THIS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! int nsub = 1000; //int nsub = 10; - printf("Subtracting last %d measurements\n",nsub); - Nmeasures = Nmeasures-nsub; + if(rank == 0)printf("Subtracting last %d measurements\n",nsub); + Nmeasures = Nmeasures-nsub; Nvis = Nmeasures*freq_per_chan*polarisations; // calculate the coordinates of the center @@ -302,7 +302,7 @@ if(rank == 0){ strcat(filename,vfile); //printf("Reading %s\n",filename); - pFile = fopen (filename,"rb"); + pFile = fopen (filename,"rb"); fseek (pFile,startrow*sizeof(double),SEEK_SET); fread(vv,Nmeasures*sizeof(double),1,pFile); fclose(pFile); @@ -340,12 +340,12 @@ if(rank == 0){ double maxv_all; double maxw_all; #ifdef USE_MPI - MPI_Allreduce(&minu,&minu_all,1, MPI_FLOAT, MPI_MIN, MPI_COMM_WORLD); - MPI_Allreduce(&minv,&minv_all,1, MPI_FLOAT, MPI_MIN, MPI_COMM_WORLD); - MPI_Allreduce(&minw,&minw_all,1, MPI_FLOAT, MPI_MIN, MPI_COMM_WORLD); - MPI_Allreduce(&maxu,&maxu_all,1, MPI_FLOAT, MPI_MAX, MPI_COMM_WORLD); - MPI_Allreduce(&maxv,&maxv_all,1, MPI_FLOAT, MPI_MAX, MPI_COMM_WORLD); - MPI_Allreduce(&maxw,&maxw_all,1, MPI_FLOAT, MPI_MAX, MPI_COMM_WORLD); + MPI_Allreduce(&minu,&minu_all,1, MPI_DOUBLE, MPI_MIN, MPI_COMM_WORLD); + MPI_Allreduce(&minv,&minv_all,1, MPI_DOUBLE, MPI_MIN, MPI_COMM_WORLD); + MPI_Allreduce(&minw,&minw_all,1, MPI_DOUBLE, MPI_MIN, MPI_COMM_WORLD); + MPI_Allreduce(&maxu,&maxu_all,1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); + MPI_Allreduce(&maxv,&maxv_all,1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); + MPI_Allreduce(&maxw,&maxw_all,1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD); #else minu_all = minu; minv_all = minv; @@ -361,7 +361,6 @@ if(rank == 0){ maxw = maxw_all; ming = ming-offset*ming; maxg = maxg+offset*maxg; - for (long inorm=0; inorm<Nmeasures; inorm++) { uu[inorm] = (uu[inorm]+maxg)/(2.0*maxg); @@ -483,7 +482,7 @@ if(rank == 0){ for (int ifiles=0; ifiles<ndatasets; ifiles++) { strcpy(filename,datapath_multi[ifiles]); - printf("Processing %s, %d of %d\n",filename,ifiles+1,ndatasets); + if(rank == 0)printf("Processing %s, %d of %d\n",filename,ifiles+1,ndatasets); // Read metadata strcpy(filename,datapath); @@ -507,7 +506,7 @@ if(rank == 0){ resolution = 1.0/MAX(abs(uvmin),abs(uvmax)); // calculate the resolution in arcsec double resolution_asec = (3600.0*180.0)/MAX(abs(uvmin),abs(uvmax))/PI; - printf("RESOLUTION = %f rad, %f arcsec\n", resolution, resolution_asec); + if(rank == 0)printf("RESOLUTION = %f rad, %f arcsec\n", resolution, resolution_asec); strcpy(filename,datapath); strcat(filename,weightsfile); @@ -543,7 +542,7 @@ if(rank == 0){ float * visreals; float * visimgs; float * weightss; - long isector; + long isector; for (long isector_count=0; isector_count<nsectors; isector_count++) { @@ -565,15 +564,14 @@ if(rank == 0){ // select data for this sector long icount = 0; - long ip = 0; - long inu = 0; -//CLAAAA - struct sectorlist * current; - current = sectorhead[isector]; + long ip = 0; + long inu = 0; + struct sectorlist * current; + current = sectorhead[isector]; - while (current->index != -1) + while (current->index != -1) { long ilocal = current->index; //double vvh = vv[ilocal];