From 712f30c2b58694b7b5c4e835370ac222b4e3072d Mon Sep 17 00:00:00 2001 From: Anna Wellmann <a.wellmann@tu-braunschweig.de> Date: Fri, 28 Apr 2023 10:13:10 +0200 Subject: [PATCH] Rmove unused gatherNups function and rename sumNups --- .../Communication/Communicator.h | 3 +-- .../Communication/MpiCommunicator.cpp | 16 ++-------------- .../Communication/MpiCommunicator.h | 3 +-- src/gpu/VirtualFluids_GPU/Output/Timer.cpp | 2 +- .../Parameter/ParameterTest.cpp | 6 +----- 5 files changed, 6 insertions(+), 24 deletions(-) diff --git a/src/gpu/VirtualFluids_GPU/Communication/Communicator.h b/src/gpu/VirtualFluids_GPU/Communication/Communicator.h index 91669f48a..c52d5af9c 100644 --- a/src/gpu/VirtualFluids_GPU/Communication/Communicator.h +++ b/src/gpu/VirtualFluids_GPU/Communication/Communicator.h @@ -27,8 +27,7 @@ public: virtual void resetRequest() = 0; ////////////////////////////////////////////////////////////////////////// virtual int mapCudaDevice(const int &rank, const int &size, const std::vector<unsigned int> &devices, const int &maxdev) = 0; - virtual std::vector<double> gatherNUPS(double processNups) = 0; - virtual double sumNups(double processNups) = 0; + virtual double reduceSum(double quantityPerProcess) = 0; ////////////////////////////////////////////////////////////////////////// virtual void receive_send(uint *buffer_receive, int size_buffer_recv, int neighbor_rank_recv, uint *buffer_send, int size_buffer_send, int neighbor_rank_send) const override = 0; diff --git a/src/gpu/VirtualFluids_GPU/Communication/MpiCommunicator.cpp b/src/gpu/VirtualFluids_GPU/Communication/MpiCommunicator.cpp index c56dae1dd..8af5931ce 100644 --- a/src/gpu/VirtualFluids_GPU/Communication/MpiCommunicator.cpp +++ b/src/gpu/VirtualFluids_GPU/Communication/MpiCommunicator.cpp @@ -216,21 +216,9 @@ int MpiCommunicator::mapCudaDevice(const int &rank, const int &size, const std:: return device; } -std::vector<double> MpiCommunicator::gatherNUPS(double processNups) +double MpiCommunicator::reduceSum(double quantityPerProcess) { - double *buffer_send = &processNups; - double *buffer_recv = (double *)malloc(sizeof(double) * this->numprocs); - - MPI_Gather(buffer_send, 1, MPI_DOUBLE, buffer_recv, 1, MPI_DOUBLE, 0, commGPU); - - if (this->PID == 0) - return std::vector<double>(buffer_recv, buffer_recv + this->numprocs); - return std::vector<double>(); -} - -double MpiCommunicator::sumNups(double processNups) -{ - double *buffer_send = &processNups; + double *buffer_send = &quantityPerProcess; double *buffer_recv = (double *)malloc(sizeof(double)); MPI_Reduce(buffer_send, buffer_recv, 1, MPI_DOUBLE, MPI_SUM, 0, commGPU); diff --git a/src/gpu/VirtualFluids_GPU/Communication/MpiCommunicator.h b/src/gpu/VirtualFluids_GPU/Communication/MpiCommunicator.h index 3fc5d1a94..f7f202eb9 100644 --- a/src/gpu/VirtualFluids_GPU/Communication/MpiCommunicator.h +++ b/src/gpu/VirtualFluids_GPU/Communication/MpiCommunicator.h @@ -55,8 +55,7 @@ public: void exchngDataGeo(int *sbuf_t, int *rbuf_t, int *sbuf_b, int *rbuf_b, int count); MPI_Comm getMpiCommunicator(); int mapCudaDevice(const int &rank, const int &size, const std::vector<unsigned int> &devices, const int &maxdev) override; - std::vector<double> gatherNUPS(double processNups) override; - double sumNups(double processNups) override; + double reduceSum(double quantityPerProcess) override; ////////////////////////////////////////////////////////////////////////// void receive_send(uint *buffer_receive, int size_buffer_recv, int neighbor_rank_recv, uint *buffer_send, int size_buffer_send, int neighbor_rank_send) const override; diff --git a/src/gpu/VirtualFluids_GPU/Output/Timer.cpp b/src/gpu/VirtualFluids_GPU/Output/Timer.cpp index 5a5e01094..f6efff584 100644 --- a/src/gpu/VirtualFluids_GPU/Output/Timer.cpp +++ b/src/gpu/VirtualFluids_GPU/Output/Timer.cpp @@ -52,7 +52,7 @@ void Timer::outputPerformance(uint t, Parameter* para, vf::gpu::Communicator& co // When using multiple GPUs, sum the nups of all processes if (communicator.getNumberOfProcess() > 1) { - double nupsSum = communicator.sumNups(fnups); + double nupsSum = communicator.reduceSum(fnups); if (communicator.getPID() == 0) VF_LOG_INFO("Sum of all {} processes: Nups in Mio: {:.1f}", communicator.getNumberOfProcess(), nupsSum); } diff --git a/src/gpu/VirtualFluids_GPU/Parameter/ParameterTest.cpp b/src/gpu/VirtualFluids_GPU/Parameter/ParameterTest.cpp index 8109766a3..6073a4d6d 100644 --- a/src/gpu/VirtualFluids_GPU/Parameter/ParameterTest.cpp +++ b/src/gpu/VirtualFluids_GPU/Parameter/ParameterTest.cpp @@ -276,11 +276,7 @@ public: { return 0; }; - std::vector<double> gatherNUPS(double processNups) override - { - return {}; - }; - double sumNups(double processNups) override + double reduceSum(double quantityPerProcess) override { return 0; }; -- GitLab