Loading Makefile +3 −3 Original line number Original line Diff line number Diff line Loading @@ -30,7 +30,7 @@ endif #OPT += -DNVIDIA #OPT += -DNVIDIA # perform one-side communication (suggested) instead of reduce (only if MPI is active) # perform one-side communication (suggested) instead of reduce (only if MPI is active) #OPT += -DONE_SIDE OPT += -DONE_SIDE # write the full 3D cube of gridded visibilities and its FFT transform # write the full 3D cube of gridded visibilities and its FFT transform #OPT += -DWRITE_DATA #OPT += -DWRITE_DATA # write the final image # write the final image Loading @@ -39,8 +39,8 @@ OPT += -DWRITE_IMAGE OPT += -DPHASE_ON OPT += -DPHASE_ON DEPS = w-stacking.h main.c w-stacking.cu phase_correction.cu allvars.h init.c gridding.c fourier_transform.c result.c DEPS = w-stacking.h main.c w-stacking.cu phase_correction.cu allvars.h init.c gridding.c fourier_transform.c result.c numa.h COBJ = w-stacking.o main.o phase_correction.o allvars.o init.o gridding.o fourier_transform.o result.o COBJ = w-stacking.o main.o phase_correction.o allvars.o init.o gridding.o fourier_transform.o result.o numa.o w-stacking.c: w-stacking.cu w-stacking.c: w-stacking.cu cp w-stacking.cu w-stacking.c cp w-stacking.cu w-stacking.c Loading allvars.c +2 −1 Original line number Original line Diff line number Diff line Loading @@ -27,6 +27,7 @@ long * histo_send, size_of_grid; double * grid, *gridss, *gridss_real, *gridss_img, *gridss_w; double * grid, *gridss, *gridss_real, *gridss_img, *gridss_w; #ifdef USE_MPI #ifdef USE_MPI MPI_Comm MYMPI_COMM_WORLD; MPI_Win slabwin; MPI_Win slabwin; #endif #endif Loading allvars.h +3 −0 Original line number Original line Diff line number Diff line Loading @@ -27,6 +27,8 @@ #include <math.h> #include <math.h> #include <time.h> #include <time.h> #include <unistd.h> #include <unistd.h> #include "numa.h" extern struct io extern struct io { { Loading Loading @@ -128,6 +130,7 @@ extern long * histo_send, size_of_grid; extern double * grid, *gridss, *gridss_real, *gridss_img, *gridss_w; extern double * grid, *gridss, *gridss_real, *gridss_img, *gridss_w; #ifdef USE_MPI #ifdef USE_MPI extern MPI_Comm MYMPI_COMM_WORLD; extern MPI_Win slabwin; extern MPI_Win slabwin; #endif #endif Loading gridding.c +1 −0 Original line number Original line Diff line number Diff line Loading @@ -248,6 +248,7 @@ void gridding_data(){ #ifdef ONE_SIDE #ifdef ONE_SIDE printf("One Side communication active\n"); printf("One Side communication active\n"); memcpy(Me.win.ptr, gridss, size_of_grid); MPI_Win_lock(MPI_LOCK_SHARED,target_rank,0,slabwin); MPI_Win_lock(MPI_LOCK_SHARED,target_rank,0,slabwin); MPI_Accumulate(gridss,size_of_grid,MPI_DOUBLE,target_rank,0,size_of_grid,MPI_DOUBLE,MPI_SUM,slabwin); MPI_Accumulate(gridss,size_of_grid,MPI_DOUBLE,target_rank,0,size_of_grid,MPI_DOUBLE,MPI_SUM,slabwin); MPI_Win_unlock(target_rank,slabwin); MPI_Win_unlock(target_rank,slabwin); Loading init.c +4 −0 Original line number Original line Diff line number Diff line Loading @@ -30,6 +30,10 @@ void init(int index) xaxis = local_grid_size_x; xaxis = local_grid_size_x; yaxis = local_grid_size_y; yaxis = local_grid_size_y; #ifdef USE_MPI init_numa( rank, size, &MYMPI_COMM_WORLD, &Me ); #endif clock_gettime(CLOCK_MONOTONIC, &begin); clock_gettime(CLOCK_MONOTONIC, &begin); start = clock(); start = clock(); Loading Loading
Makefile +3 −3 Original line number Original line Diff line number Diff line Loading @@ -30,7 +30,7 @@ endif #OPT += -DNVIDIA #OPT += -DNVIDIA # perform one-side communication (suggested) instead of reduce (only if MPI is active) # perform one-side communication (suggested) instead of reduce (only if MPI is active) #OPT += -DONE_SIDE OPT += -DONE_SIDE # write the full 3D cube of gridded visibilities and its FFT transform # write the full 3D cube of gridded visibilities and its FFT transform #OPT += -DWRITE_DATA #OPT += -DWRITE_DATA # write the final image # write the final image Loading @@ -39,8 +39,8 @@ OPT += -DWRITE_IMAGE OPT += -DPHASE_ON OPT += -DPHASE_ON DEPS = w-stacking.h main.c w-stacking.cu phase_correction.cu allvars.h init.c gridding.c fourier_transform.c result.c DEPS = w-stacking.h main.c w-stacking.cu phase_correction.cu allvars.h init.c gridding.c fourier_transform.c result.c numa.h COBJ = w-stacking.o main.o phase_correction.o allvars.o init.o gridding.o fourier_transform.o result.o COBJ = w-stacking.o main.o phase_correction.o allvars.o init.o gridding.o fourier_transform.o result.o numa.o w-stacking.c: w-stacking.cu w-stacking.c: w-stacking.cu cp w-stacking.cu w-stacking.c cp w-stacking.cu w-stacking.c Loading
allvars.c +2 −1 Original line number Original line Diff line number Diff line Loading @@ -27,6 +27,7 @@ long * histo_send, size_of_grid; double * grid, *gridss, *gridss_real, *gridss_img, *gridss_w; double * grid, *gridss, *gridss_real, *gridss_img, *gridss_w; #ifdef USE_MPI #ifdef USE_MPI MPI_Comm MYMPI_COMM_WORLD; MPI_Win slabwin; MPI_Win slabwin; #endif #endif Loading
allvars.h +3 −0 Original line number Original line Diff line number Diff line Loading @@ -27,6 +27,8 @@ #include <math.h> #include <math.h> #include <time.h> #include <time.h> #include <unistd.h> #include <unistd.h> #include "numa.h" extern struct io extern struct io { { Loading Loading @@ -128,6 +130,7 @@ extern long * histo_send, size_of_grid; extern double * grid, *gridss, *gridss_real, *gridss_img, *gridss_w; extern double * grid, *gridss, *gridss_real, *gridss_img, *gridss_w; #ifdef USE_MPI #ifdef USE_MPI extern MPI_Comm MYMPI_COMM_WORLD; extern MPI_Win slabwin; extern MPI_Win slabwin; #endif #endif Loading
gridding.c +1 −0 Original line number Original line Diff line number Diff line Loading @@ -248,6 +248,7 @@ void gridding_data(){ #ifdef ONE_SIDE #ifdef ONE_SIDE printf("One Side communication active\n"); printf("One Side communication active\n"); memcpy(Me.win.ptr, gridss, size_of_grid); MPI_Win_lock(MPI_LOCK_SHARED,target_rank,0,slabwin); MPI_Win_lock(MPI_LOCK_SHARED,target_rank,0,slabwin); MPI_Accumulate(gridss,size_of_grid,MPI_DOUBLE,target_rank,0,size_of_grid,MPI_DOUBLE,MPI_SUM,slabwin); MPI_Accumulate(gridss,size_of_grid,MPI_DOUBLE,target_rank,0,size_of_grid,MPI_DOUBLE,MPI_SUM,slabwin); MPI_Win_unlock(target_rank,slabwin); MPI_Win_unlock(target_rank,slabwin); Loading
init.c +4 −0 Original line number Original line Diff line number Diff line Loading @@ -30,6 +30,10 @@ void init(int index) xaxis = local_grid_size_x; xaxis = local_grid_size_x; yaxis = local_grid_size_y; yaxis = local_grid_size_y; #ifdef USE_MPI init_numa( rank, size, &MYMPI_COMM_WORLD, &Me ); #endif clock_gettime(CLOCK_MONOTONIC, &begin); clock_gettime(CLOCK_MONOTONIC, &begin); start = clock(); start = clock(); Loading