From 4a2ae056e0b3fbf0ecefff89cd3da8c6bf8ba1fa Mon Sep 17 00:00:00 2001 From: Anna Wellmann <a.wellmann@tu-bs.de> Date: Thu, 2 Jun 2022 11:13:03 +0200 Subject: [PATCH] Fix bug in vf::gpu::Communicator Some variables were not assigned values in the constructor. This caused an "MPI_ERR_COMM: invalid communicator" error when using multiple gpus. --- src/gpu/VirtualFluids_GPU/Communication/Communicator.cpp | 4 ++++ src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp | 1 - 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/gpu/VirtualFluids_GPU/Communication/Communicator.cpp b/src/gpu/VirtualFluids_GPU/Communication/Communicator.cpp index c347be4c9..a5296b120 100644 --- a/src/gpu/VirtualFluids_GPU/Communication/Communicator.cpp +++ b/src/gpu/VirtualFluids_GPU/Communication/Communicator.cpp @@ -28,6 +28,10 @@ Communicator::Communicator() MPI_Comm_rank(MPI_COMM_WORLD, &PID); MPI_Comm_size(MPI_COMM_WORLD, &numprocs); + commGPU = MPI_COMM_WORLD; + requestGPU.resize(0); + rcount = 0; + // Get a new communicator for a decomposition of the domain int isperiodic[1] = { 0 }; MPI_Cart_create(MPI_COMM_WORLD, 1, &numprocs, isperiodic, 1, &comm1d); diff --git a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp index 4f8e9ef3d..a30754710 100644 --- a/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp +++ b/src/gpu/VirtualFluids_GPU/Parameter/Parameter.cpp @@ -1510,7 +1510,6 @@ bool Parameter::findIndexInSendNodesXY(int level, int index, int &indexOfProcess for (uint k = 0; k < (unsigned int)(this->getNumberOfProcessNeighborsY(level, "send")); k++) { for (int l = 0; l < parH[level]->sendProcessNeighborY[k].numberOfNodes; l++) { if (parH[level]->sendProcessNeighborY[k].index[l] == index) { - ; indexOfProcessNeighborSend = k; indexInSendBuffer = l; return true; -- GitLab