From 5b0bcec2ac2fd587f6396fb2d0c603b8af1af8b4 Mon Sep 17 00:00:00 2001 From: kai Date: Sun, 1 Jun 2025 12:49:51 +0200 Subject: [PATCH] add tags --- lab10/jacobi/jacobi_mpi.cpp | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/lab10/jacobi/jacobi_mpi.cpp b/lab10/jacobi/jacobi_mpi.cpp index 5c1adbb..922c0cd 100644 --- a/lab10/jacobi/jacobi_mpi.cpp +++ b/lab10/jacobi/jacobi_mpi.cpp @@ -53,12 +53,12 @@ Jacobi::Result JacobiMPI::run(const Matrix &init, double epsilon, if (rank == 0) { MPI_Request send_lower; std::vector send_vec_low = phi[t0].get_row(numRows - 1); - MPI_Isend(send_vec_low.data(), numCols, MPI_DOUBLE, neighborLower, 0, - MPI_COMM_WORLD, &send_lower); + MPI_Isend(send_vec_low.data(), numCols, MPI_DOUBLE, neighborLower, + indexRowGlobalEnd, MPI_COMM_WORLD, &send_lower); MPI_Request requestLower; - MPI_Irecv(haloLower.data(), numCols, MPI_DOUBLE, neighborLower, 0, - MPI_COMM_WORLD, &requestLower); + MPI_Irecv(haloLower.data(), numCols, MPI_DOUBLE, neighborLower, + rowHaloLowerIndex, MPI_COMM_WORLD, &requestLower); MPI_Wait(&send_lower, MPI_STATUS_IGNORE); MPI_Wait(&requestLower, MPI_STATUS_IGNORE); @@ -79,12 +79,12 @@ Jacobi::Result JacobiMPI::run(const Matrix &init, double epsilon, else if (rank == (numProc - 1)) { MPI_Request send_upper; std::vector send_vec_up = phi[t0].get_row(rank * numRows); - MPI_Isend(send_vec_up.data(), numCols, MPI_DOUBLE, neighborUpper, 0, - MPI_COMM_WORLD, &send_upper); + MPI_Isend(send_vec_up.data(), numCols, MPI_DOUBLE, neighborUpper, + indexRowGlobalStart, MPI_COMM_WORLD, &send_upper); MPI_Request request_upper; - MPI_Irecv(haloUpper.data(), numCols, MPI_DOUBLE, neighborUpper, 0, - MPI_COMM_WORLD, &request_upper); + MPI_Irecv(haloUpper.data(), numCols, MPI_DOUBLE, neighborUpper, + rowHaloUpperIndex, MPI_COMM_WORLD, &request_upper); MPI_Wait(&send_upper, MPI_STATUS_IGNORE); MPI_Wait(&request_upper, MPI_STATUS_IGNORE); @@ -106,20 +106,20 @@ Jacobi::Result JacobiMPI::run(const Matrix &init, double epsilon, MPI_Request send_lower; std::vector send_vec_up = phi[t0].get_row(rank * numRows); - MPI_Isend(send_vec_up.data(), numCols, MPI_DOUBLE, neighborUpper, 0, - MPI_COMM_WORLD, &send_upper); + MPI_Isend(send_vec_up.data(), numCols, MPI_DOUBLE, neighborUpper, + indexRowGlobalStart, MPI_COMM_WORLD, &send_upper); std::vector send_vec_low = phi[t0].get_row(rank * numRows + numRows); - MPI_Isend(send_vec_low.data(), numCols, MPI_DOUBLE, neighborLower, 0, - MPI_COMM_WORLD, &send_lower); + MPI_Isend(send_vec_low.data(), numCols, MPI_DOUBLE, neighborLower, + indexRowGlobalEnd, MPI_COMM_WORLD, &send_lower); MPI_Request request_upper; MPI_Request request_lower; - MPI_Irecv(haloUpper.data(), numCols, MPI_DOUBLE, neighborUpper, 0, - MPI_COMM_WORLD, &request_upper); - MPI_Irecv(haloLower.data(), numCols, MPI_DOUBLE, neighborLower, 0, - MPI_COMM_WORLD, &request_lower); + MPI_Irecv(haloUpper.data(), numCols, MPI_DOUBLE, neighborUpper, + rowHaloUpperIndex, MPI_COMM_WORLD, &request_upper); + MPI_Irecv(haloLower.data(), numCols, MPI_DOUBLE, neighborLower, + rowHaloLowerIndex, MPI_COMM_WORLD, &request_lower); MPI_Wait(&send_upper, MPI_STATUS_IGNORE); MPI_Wait(&send_lower, MPI_STATUS_IGNORE);