From 2f44059b6b0532bc467b8179c258ecb8661ce23c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Oberhuber?= <oberhuber.tomas@gmail.com>
Date: Thu, 7 Feb 2019 07:28:25 +0100
Subject: [PATCH] MpiCommunicator cheks MPI_CUDA awarness only running really
 in more MPI processes.

---
 src/TNL/Communicators/MpiCommunicator.h | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/src/TNL/Communicators/MpiCommunicator.h b/src/TNL/Communicators/MpiCommunicator.h
index 198805f1b2..7d66693a99 100644
--- a/src/TNL/Communicators/MpiCommunicator.h
+++ b/src/TNL/Communicators/MpiCommunicator.h
@@ -105,14 +105,19 @@ class MpiCommunicator
             redirect = parameters.getParameter< bool >( "redirect-mpi-output" );
             setupRedirection();
 #ifdef HAVE_CUDA
-   #if defined(MPIX_CUDA_AWARE_SUPPORT) && MPIX_CUDA_AWARE_SUPPORT
-            std::cout << "CUDA-aware MPI detected on this system ... " << std::endl;
-   #elif defined(MPIX_CUDA_AWARE_SUPPORT) && !MPIX_CUDA_AWARE_SUPPORT
-            std::cerr << "MPI is not CUDA-aware. Please install correct version of MPI." << std::endl;
-            return false;
+            int size;
+            MPI_Comm_size( MPI_COMM_WORLD, &size );
+            if( size > 1 )
+            {
+   #if defined( MPIX_CUDA_AWARE_SUPPORT ) && MPIX_CUDA_AWARE_SUPPORT
+               std::cout << "CUDA-aware MPI detected on this system ... " << std::endl;
+   #elif defined( MPIX_CUDA_AWARE_SUPPORT ) && !MPIX_CUDA_AWARE_SUPPORT
+               std::cerr << "MPI is not CUDA-aware. Please install correct version of MPI." << std::endl;
+               return false;
    #else
-            std::cerr << "WARNING: TNL cannot detect if you have CUDA-aware MPI. Some problems may occur." << std::endl;
+               std::cerr << "WARNING: TNL cannot detect if you have CUDA-aware MPI. Some problems may occur." << std::endl;
    #endif
+            }
 #endif // HAVE_CUDA
             bool gdbDebug = parameters.getParameter< bool >( "mpi-gdb-debug" );
             int processToAttach = parameters.getParameter< int >( "mpi-process-to-attach" );
-- 
GitLab