Loading Build/Makefile.systype +1 −1 Original line number Diff line number Diff line Loading @@ -4,7 +4,7 @@ CXX = g++-10 MPICC = mpicc MPIC++ = mpiCC OPTIMIZE = -O4 -fopenmp -march=native -mavx -mavx2 OPTIMIZE = -ggdb3 -O4 -fopenmp -march=native -mavx -mavx2 GSL_INCL = Loading Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -151,7 +151,7 @@ endif ################################################################################### w-stacking: $(OBJ) $(DEPS) Makefile $(LINKER) $(FLAGS) $(OPTIMIZE) $(OPT) $(FFTWLIBS) $(LIBS) $(OBJ) -lmpi -lm -o $(EXEC)$(EXEC_EXT) $(LINKER) $(FLAGS) $(OPTIMIZE) $(OPT) $(OBJ) -lmpi -o $(EXEC)$(EXEC_EXT) -lmpi $(FFTWLIBS) $(LIBS) $(OBJ): $(DEPS) Makefile Loading data/paramfile.txt +6 −4 Original line number Diff line number Diff line ndatasets 1 Datapath1 /data/hpc_imaging/data/newgauss2noconj_t201806301100_SBL180.binMS/ Datapath1 /data/LOFAR_MERGE/hpc_imaging/data/newgauss2noconj_t201806301100_SBL180.binMS/ #Datapath2 /beegfs/lofar/cgheller/L798046_SB244_uv.uncorr_130B27932t_123MHz.pre-cal.binMS/ #Datapath3 /beegfs/lofar/cgheller/L798046_SB244_uv.uncorr_130B27932t_125MHz.pre-cal.binMS/ num_threads 8 num_threads 1 w_support 7 grid_size_x 32768 grid_size_y 32768 reduce_method 0 grid_size_x 1024 grid_size_y 1024 num_w_planes 8 ufile ucoord.bin vfile vcoord.bin Loading @@ -24,3 +25,4 @@ fftfile3 fft_img.bin logfile run.log extension .txt timingfile timings.dat fourier_transform.c +9 −9 Original line number Diff line number Diff line Loading @@ -27,8 +27,8 @@ void fftw_data(){ fftwgrid = fftw_alloc_complex(alloc_local); 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; uint fftwindex = 0; uint fftwindex2D = 0; for (int iw=0; iw<param.num_w_planes; iw++) { //printf("FFTing plan %d\n",iw); Loading Loading @@ -106,7 +106,7 @@ void write_fftw_data(){ MPI_Win_lock(MPI_LOCK_SHARED,isector,0,writewin); MPI_Get(gridss_w,size_of_grid,MPI_DOUBLE,isector,0,size_of_grid,MPI_DOUBLE,writewin); MPI_Win_unlock(isector,writewin); for (long i=0; i<size_of_grid/2; i++) for (uint i=0; i<size_of_grid/2; i++) { gridss_real[i] = gridss_w[2*i]; gridss_img[i] = gridss_w[2*i+1]; Loading @@ -117,8 +117,8 @@ void write_fftw_data(){ for (int iv=0; iv<yaxis; iv++) for (int iu=0; iu<xaxis; iu++) { long global_index = (iu + (iv+isector*yaxis)*xaxis + iw*param.grid_size_x*param.grid_size_y)*sizeof(double); long index = iu + iv*xaxis + iw*xaxis*yaxis; uint global_index = (iu + (iv+isector*yaxis)*xaxis + iw*param.grid_size_x*param.grid_size_y)*sizeof(double); uint index = iu + iv*xaxis + iw*xaxis*yaxis; fseek(file.pFilereal, global_index, SEEK_SET); fwrite(&gridss_real[index], 1, sizeof(double), file.pFilereal); } Loading @@ -126,8 +126,8 @@ void write_fftw_data(){ for (int iv=0; iv<yaxis; iv++) for (int iu=0; iu<xaxis; iu++) { long global_index = (iu + (iv+isector*yaxis)*xaxis + iw*param.grid_size_x*param.grid_size_y)*sizeof(double); long index = iu + iv*xaxis + iw*xaxis*yaxis; uint global_index = (iu + (iv+isector*yaxis)*xaxis + iw*param.grid_size_x*param.grid_size_y)*sizeof(double); uint index = iu + iv*xaxis + iw*xaxis*yaxis; fseek(file.pFileimg, global_index, SEEK_SET); fwrite(&gridss_img[index], 1, sizeof(double), file.pFileimg); } Loading @@ -146,7 +146,7 @@ void write_fftw_data(){ for (int iu=0; iu<grid_size_x; iu++) { int isector = 0; long index = 2*(iu + iv*grid_size_x + iw*grid_size_x*grid_size_y); uint index = 2*(iu + iv*grid_size_x + iw*grid_size_x*grid_size_y); double v_norm = sqrt(gridtot[index]*gridtot[index]+gridtot[index+1]*gridtot[index+1]); fprintf (file.pFile, "%d %d %d %f %f %f\n", iu,iv,iw,gridtot[index],gridtot[index+1],v_norm); } Loading Loading @@ -200,7 +200,7 @@ void write_fftw_data(){ file.pFilereal = fopen (out.fftfile2,"ab"); file.pFileimg = fopen (out.fftfile3,"ab"); long global_index = isector*(xaxis*yaxis)*sizeof(double); uint global_index = isector*(xaxis*yaxis)*sizeof(double); fseek(file.pFilereal, global_index, SEEK_SET); fwrite(image_real, xaxis*yaxis, sizeof(double), file.pFilereal); Loading gridding.c +44 −45 Original line number Diff line number Diff line #include "allvars.h" #include "proto.h" Loading Loading
Build/Makefile.systype +1 −1 Original line number Diff line number Diff line Loading @@ -4,7 +4,7 @@ CXX = g++-10 MPICC = mpicc MPIC++ = mpiCC OPTIMIZE = -O4 -fopenmp -march=native -mavx -mavx2 OPTIMIZE = -ggdb3 -O4 -fopenmp -march=native -mavx -mavx2 GSL_INCL = Loading
Makefile +1 −1 Original line number Diff line number Diff line Loading @@ -151,7 +151,7 @@ endif ################################################################################### w-stacking: $(OBJ) $(DEPS) Makefile $(LINKER) $(FLAGS) $(OPTIMIZE) $(OPT) $(FFTWLIBS) $(LIBS) $(OBJ) -lmpi -lm -o $(EXEC)$(EXEC_EXT) $(LINKER) $(FLAGS) $(OPTIMIZE) $(OPT) $(OBJ) -lmpi -o $(EXEC)$(EXEC_EXT) -lmpi $(FFTWLIBS) $(LIBS) $(OBJ): $(DEPS) Makefile Loading
data/paramfile.txt +6 −4 Original line number Diff line number Diff line ndatasets 1 Datapath1 /data/hpc_imaging/data/newgauss2noconj_t201806301100_SBL180.binMS/ Datapath1 /data/LOFAR_MERGE/hpc_imaging/data/newgauss2noconj_t201806301100_SBL180.binMS/ #Datapath2 /beegfs/lofar/cgheller/L798046_SB244_uv.uncorr_130B27932t_123MHz.pre-cal.binMS/ #Datapath3 /beegfs/lofar/cgheller/L798046_SB244_uv.uncorr_130B27932t_125MHz.pre-cal.binMS/ num_threads 8 num_threads 1 w_support 7 grid_size_x 32768 grid_size_y 32768 reduce_method 0 grid_size_x 1024 grid_size_y 1024 num_w_planes 8 ufile ucoord.bin vfile vcoord.bin Loading @@ -24,3 +25,4 @@ fftfile3 fft_img.bin logfile run.log extension .txt timingfile timings.dat
fourier_transform.c +9 −9 Original line number Diff line number Diff line Loading @@ -27,8 +27,8 @@ void fftw_data(){ fftwgrid = fftw_alloc_complex(alloc_local); 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; uint fftwindex = 0; uint fftwindex2D = 0; for (int iw=0; iw<param.num_w_planes; iw++) { //printf("FFTing plan %d\n",iw); Loading Loading @@ -106,7 +106,7 @@ void write_fftw_data(){ MPI_Win_lock(MPI_LOCK_SHARED,isector,0,writewin); MPI_Get(gridss_w,size_of_grid,MPI_DOUBLE,isector,0,size_of_grid,MPI_DOUBLE,writewin); MPI_Win_unlock(isector,writewin); for (long i=0; i<size_of_grid/2; i++) for (uint i=0; i<size_of_grid/2; i++) { gridss_real[i] = gridss_w[2*i]; gridss_img[i] = gridss_w[2*i+1]; Loading @@ -117,8 +117,8 @@ void write_fftw_data(){ for (int iv=0; iv<yaxis; iv++) for (int iu=0; iu<xaxis; iu++) { long global_index = (iu + (iv+isector*yaxis)*xaxis + iw*param.grid_size_x*param.grid_size_y)*sizeof(double); long index = iu + iv*xaxis + iw*xaxis*yaxis; uint global_index = (iu + (iv+isector*yaxis)*xaxis + iw*param.grid_size_x*param.grid_size_y)*sizeof(double); uint index = iu + iv*xaxis + iw*xaxis*yaxis; fseek(file.pFilereal, global_index, SEEK_SET); fwrite(&gridss_real[index], 1, sizeof(double), file.pFilereal); } Loading @@ -126,8 +126,8 @@ void write_fftw_data(){ for (int iv=0; iv<yaxis; iv++) for (int iu=0; iu<xaxis; iu++) { long global_index = (iu + (iv+isector*yaxis)*xaxis + iw*param.grid_size_x*param.grid_size_y)*sizeof(double); long index = iu + iv*xaxis + iw*xaxis*yaxis; uint global_index = (iu + (iv+isector*yaxis)*xaxis + iw*param.grid_size_x*param.grid_size_y)*sizeof(double); uint index = iu + iv*xaxis + iw*xaxis*yaxis; fseek(file.pFileimg, global_index, SEEK_SET); fwrite(&gridss_img[index], 1, sizeof(double), file.pFileimg); } Loading @@ -146,7 +146,7 @@ void write_fftw_data(){ for (int iu=0; iu<grid_size_x; iu++) { int isector = 0; long index = 2*(iu + iv*grid_size_x + iw*grid_size_x*grid_size_y); uint index = 2*(iu + iv*grid_size_x + iw*grid_size_x*grid_size_y); double v_norm = sqrt(gridtot[index]*gridtot[index]+gridtot[index+1]*gridtot[index+1]); fprintf (file.pFile, "%d %d %d %f %f %f\n", iu,iv,iw,gridtot[index],gridtot[index+1],v_norm); } Loading Loading @@ -200,7 +200,7 @@ void write_fftw_data(){ file.pFilereal = fopen (out.fftfile2,"ab"); file.pFileimg = fopen (out.fftfile3,"ab"); long global_index = isector*(xaxis*yaxis)*sizeof(double); uint global_index = isector*(xaxis*yaxis)*sizeof(double); fseek(file.pFilereal, global_index, SEEK_SET); fwrite(image_real, xaxis*yaxis, sizeof(double), file.pFilereal); Loading
gridding.c +44 −45 Original line number Diff line number Diff line #include "allvars.h" #include "proto.h" Loading