#include "mpi.h" #include "stdio.h" #include #include #include "assert.h" #include "string.h" #include "stdlib.h" #include #include #include #include // std::shuffle #include #include // std::this_thread::sleep_for #include using namespace std; int main(int argc, char **argv) { MPI_Win win; size_t dim_a, dim_b, dim; int rank, nproc; int ta, tb; dim_a = 1024; dim_b = 1024; dim = dim_a + dim_b; MPI_Init(&argc, &argv); MPI_Comm_size(MPI_COMM_WORLD, &nproc); MPI_Comm_rank(MPI_COMM_WORLD, &rank); int *a = new int [dim_a]; int *b = new int [dim_b]; for(int i=0; i 1) { MPI_Get(&ta, 1, MPI_INT, (rank+1)%nproc, disp_all[(rank+1)%nproc], 1, MPI_INT, win); } else { ta = a[0]; } MPI_Win_fence(MPI_MODE_NOPUT, win); for(int i=0; i