Override GMX_GPU_DD_COMMS if nonbondeds are off
authorSzilárd Páll <pall.szilard@gmail.com>
Tue, 15 Oct 2019 17:19:34 +0000 (19:19 +0200)
committerArtem Zhmurov <zhmurov@gmail.com>
Mon, 21 Oct 2019 15:53:03 +0000 (17:53 +0200)
It is not useful to have environment variables force dev features
on when a hard dependency, here the nonbonded offload, is not enabled
in a run. This override should make it easier to pass tests.

Change-Id: I58898fc4ea55454d74bc0e7fb1121eab2c66d84c

src/gromacs/mdrun/runner.cpp

index 74a690ef1bb74439360cd386250e912ab3bf98fa..a49f5372d5f3b9beea1e74b13c9ba3ed9a127e5c 100644 (file)
@@ -223,9 +223,20 @@ static DevelopmentFeatureFlags manageDevelopmentFeatures(const gmx::MDLogger &md
 
     if (devFlags.enableGpuHaloExchange)
     {
-        if (!devFlags.enableGpuBufferOps)
+        if (useGpuForNonbonded)
         {
-            gmx_fatal(FARGS, "Cannot enable GPU halo exchange without GPU buffer operations, set GMX_USE_GPU_BUFFER_OPS=1\n");
+            if (!devFlags.enableGpuBufferOps)
+            {
+                gmx_fatal(FARGS, "Cannot enable GPU halo exchange without GPU buffer operations, set GMX_USE_GPU_BUFFER_OPS=1\n");
+            }
+            GMX_LOG(mdlog.warning).asParagraph().appendTextFormatted(
+                    "NOTE: This run uses the 'GPU halo exchange' feature, enabled by the GMX_GPU_DD_COMMS environment variable.");
+        }
+        else
+        {
+            GMX_LOG(mdlog.warning).asParagraph().appendTextFormatted(
+                    "NOTE: GMX_GPU_DD_COMMS environment variable detected, but the 'GPU halo exchange' feature will not be enabled as nonbonded interactions are not offloaded.");
+            devFlags.enableGpuHaloExchange = false;
         }
     }