Loading gridding.c +3 −3 Original line number Diff line number Diff line Loading @@ -6,11 +6,11 @@ void free_array ( uint *, uint **, int ); void initialize_array ( void ); void gridding_data ( void ); void gridding_data ( int ); void gridding() void gridding(int ifiles) { if(rank == 0) Loading Loading @@ -90,7 +90,7 @@ void gridding() timing_wt.init += CPU_TIME_wt - start; //Sector and Gridding data gridding_data(); gridding_data(ifiles); timing_wt.gridding += CPU_TIME_wt - start; Loading gridding_cpu.c +1 −1 Original line number Diff line number Diff line Loading @@ -14,7 +14,7 @@ int reduce_ring (int); // ..................................................................... // void gridding_data() void gridding_data(int ifiles) // // actually performs the gridding of the data // Loading gridding_nccl.cu +52 −24 Original line number Diff line number Diff line Loading @@ -48,7 +48,7 @@ static void getHostName(char* hostname, int maxlen) { void gridding_data(){ void gridding_data(int ifiles){ double shift = (double)(dx*yaxis); Loading Loading @@ -98,11 +98,14 @@ void gridding_data(){ long long unsigned size_finta = (long long unsigned)(2*(long long unsigned)param.num_w_planes*(long long unsigned)xaxis*(long long unsigned)yaxis); if (ifiles == 0) { nnn = cudaMalloc(&grid_gpu, (size_t)(size_finta*sizeof(double))); if (nnn != cudaSuccess) {printf("!!! gridding_nccl.cu cudaMalloc &grid_gpu ERROR %d !!!\n", nnn);} nnn = cudaMalloc(&gridss_gpu, (size_t)(size_finta*sizeof(double))); if (nnn != cudaSuccess) {printf("!!! gridding_nccl.cu cudaMalloc &gridss_gpu ERROR %d !!!\n", nnn);} } nnn = cudaStreamCreate(&stream_reduce); if (nnn != cudaSuccess) {printf("!!! gridding_nccl.cu cudaStreamCreate &stream_reduce ERROR %d !!!\n", nnn);} Loading Loading @@ -206,6 +209,7 @@ void gridding_data(){ //We have to call different GPUs per MPI task!!! [GL] #ifdef CUDACC if (size > 1) { wstack((long long unsigned)param.num_w_planes, Nsec, metaData.freq_per_chan, Loading @@ -225,6 +229,29 @@ void gridding_data(){ param.num_threads, rank, stream_stacking); } else { wstack((long long unsigned)param.num_w_planes, Nsec, metaData.freq_per_chan, metaData.polarisations, uus, vvs, wws, visreals, visimgs, weightss, dx, dw, param.w_support, (long long unsigned)xaxis, (long long unsigned)yaxis, grid_gpu, param.num_threads, rank, stream_stacking); } #else wstack(param.num_w_planes, Nsec, Loading Loading @@ -296,6 +323,7 @@ void gridding_data(){ cudaFree(gridss_gpu); #endif cudaStreamDestroy(stream_reduce); cudaStreamDestroy(stream_stacking); Loading init.c +15 −1 Original line number Diff line number Diff line Loading @@ -55,7 +55,8 @@ void init(int index) MPI_Barrier(MPI_COMM_WORLD); timing_wt.setup = CPU_TIME_wt - begin; if(index == 0) timing_wt.setup = 0.0; timing_wt.setup += CPU_TIME_wt - begin; return; } Loading Loading @@ -113,9 +114,12 @@ void op_filename() { strcat(buf, outparam.extension); strcpy(out.extension, buf); strcpy(out.timingfile, outparam.timingfile); /* strcpy(buf, num_buf); strcat(buf, outparam.timingfile); strcpy(out.timingfile, buf); */ } /* Communicating the relevent parameters to the other process */ Loading Loading @@ -364,6 +368,16 @@ void allocate_memory(int index) { // all the sizes are rescaled by the number of MPI tasks // Allocate arrays if (data.uu != NULL) { printf("Freeing input data\n"); free(data.uu); free(data.vv); free(data.ww); free(data.weights); free(data.visreal); free(data.visimg); } data.uu = (double*) calloc(metaData.Nmeasures,sizeof(double)); data.vv = (double*) calloc(metaData.Nmeasures,sizeof(double)); data.ww = (double*) calloc(metaData.Nmeasures,sizeof(double)); Loading main.c +2 −1 Original line number Diff line number Diff line Loading @@ -143,11 +143,12 @@ int main(int argc, char * argv[]) if(rank == 0) printf( "\nDataset %d\n", ifiles); // CLAAAAAAA /*INIT function */ init(ifiles); /* GRIDDING function */ gridding(); gridding(ifiles); } /* WRITE_GRIDDED_DATA function */ Loading Loading
gridding.c +3 −3 Original line number Diff line number Diff line Loading @@ -6,11 +6,11 @@ void free_array ( uint *, uint **, int ); void initialize_array ( void ); void gridding_data ( void ); void gridding_data ( int ); void gridding() void gridding(int ifiles) { if(rank == 0) Loading Loading @@ -90,7 +90,7 @@ void gridding() timing_wt.init += CPU_TIME_wt - start; //Sector and Gridding data gridding_data(); gridding_data(ifiles); timing_wt.gridding += CPU_TIME_wt - start; Loading
gridding_cpu.c +1 −1 Original line number Diff line number Diff line Loading @@ -14,7 +14,7 @@ int reduce_ring (int); // ..................................................................... // void gridding_data() void gridding_data(int ifiles) // // actually performs the gridding of the data // Loading
gridding_nccl.cu +52 −24 Original line number Diff line number Diff line Loading @@ -48,7 +48,7 @@ static void getHostName(char* hostname, int maxlen) { void gridding_data(){ void gridding_data(int ifiles){ double shift = (double)(dx*yaxis); Loading Loading @@ -98,11 +98,14 @@ void gridding_data(){ long long unsigned size_finta = (long long unsigned)(2*(long long unsigned)param.num_w_planes*(long long unsigned)xaxis*(long long unsigned)yaxis); if (ifiles == 0) { nnn = cudaMalloc(&grid_gpu, (size_t)(size_finta*sizeof(double))); if (nnn != cudaSuccess) {printf("!!! gridding_nccl.cu cudaMalloc &grid_gpu ERROR %d !!!\n", nnn);} nnn = cudaMalloc(&gridss_gpu, (size_t)(size_finta*sizeof(double))); if (nnn != cudaSuccess) {printf("!!! gridding_nccl.cu cudaMalloc &gridss_gpu ERROR %d !!!\n", nnn);} } nnn = cudaStreamCreate(&stream_reduce); if (nnn != cudaSuccess) {printf("!!! gridding_nccl.cu cudaStreamCreate &stream_reduce ERROR %d !!!\n", nnn);} Loading Loading @@ -206,6 +209,7 @@ void gridding_data(){ //We have to call different GPUs per MPI task!!! [GL] #ifdef CUDACC if (size > 1) { wstack((long long unsigned)param.num_w_planes, Nsec, metaData.freq_per_chan, Loading @@ -225,6 +229,29 @@ void gridding_data(){ param.num_threads, rank, stream_stacking); } else { wstack((long long unsigned)param.num_w_planes, Nsec, metaData.freq_per_chan, metaData.polarisations, uus, vvs, wws, visreals, visimgs, weightss, dx, dw, param.w_support, (long long unsigned)xaxis, (long long unsigned)yaxis, grid_gpu, param.num_threads, rank, stream_stacking); } #else wstack(param.num_w_planes, Nsec, Loading Loading @@ -296,6 +323,7 @@ void gridding_data(){ cudaFree(gridss_gpu); #endif cudaStreamDestroy(stream_reduce); cudaStreamDestroy(stream_stacking); Loading
init.c +15 −1 Original line number Diff line number Diff line Loading @@ -55,7 +55,8 @@ void init(int index) MPI_Barrier(MPI_COMM_WORLD); timing_wt.setup = CPU_TIME_wt - begin; if(index == 0) timing_wt.setup = 0.0; timing_wt.setup += CPU_TIME_wt - begin; return; } Loading Loading @@ -113,9 +114,12 @@ void op_filename() { strcat(buf, outparam.extension); strcpy(out.extension, buf); strcpy(out.timingfile, outparam.timingfile); /* strcpy(buf, num_buf); strcat(buf, outparam.timingfile); strcpy(out.timingfile, buf); */ } /* Communicating the relevent parameters to the other process */ Loading Loading @@ -364,6 +368,16 @@ void allocate_memory(int index) { // all the sizes are rescaled by the number of MPI tasks // Allocate arrays if (data.uu != NULL) { printf("Freeing input data\n"); free(data.uu); free(data.vv); free(data.ww); free(data.weights); free(data.visreal); free(data.visimg); } data.uu = (double*) calloc(metaData.Nmeasures,sizeof(double)); data.vv = (double*) calloc(metaData.Nmeasures,sizeof(double)); data.ww = (double*) calloc(metaData.Nmeasures,sizeof(double)); Loading
main.c +2 −1 Original line number Diff line number Diff line Loading @@ -143,11 +143,12 @@ int main(int argc, char * argv[]) if(rank == 0) printf( "\nDataset %d\n", ifiles); // CLAAAAAAA /*INIT function */ init(ifiles); /* GRIDDING function */ gridding(); gridding(ifiles); } /* WRITE_GRIDDED_DATA function */ Loading