Environment variable docs maintenance
authorSzilárd Páll <pall.szilard@gmail.com>
Tue, 19 Dec 2017 18:20:42 +0000 (19:20 +0100)
committerMark Abraham <mark.j.abraham@gmail.com>
Wed, 10 Jan 2018 08:51:00 +0000 (09:51 +0100)
Removed deprecated variables (some ancient, some recent), corrected some
misspelled ones.

Added undocumented environment variables.

Left a comment with handy one-liner to discover leftovers as well as
undocumented variables.

Refs #2359

Change-Id: Icb80cf661e2a53c5049fe18d687b987fb2c025f1

docs/user-guide/environment-variables.rst
src/gromacs/ewald/pme.cuh

index 5ed6d03587e64a3ba315065da3e2e5e1e1296b53..61eeb169e793c39f93c1bda8ed1007ddbad419e9 100644 (file)
@@ -1,3 +1,11 @@
+.. NOTE: Below is a useful bash one-liner to verify whether there are variables in this file
+..        no longer present in the code.
+.. ( export INPUT_FILE='docs/user-guide/environment-variables.rst' GIT_PAGER="cat "; for s in $(grep '^`'  $INPUT_FILE | sed 's/`//g' | sed 's/,/ /g'); do count=$(git grep $s | grep -v $INPUT_FILE | wc -l); [ $count -eq 0 ] && printf "%-30s%s\n" $s $count; done ; )
+.. Another useful one-liner to find undocumentedvariables:
+..  ( export INPUT_FILE=docs/user-guide/environment-variables.rst; GIT_PAGER="cat ";   for ss in `for s in $(git grep getenv |  sed 's/.*getenv("\(.*\)".*/\1/' | sort -u  | grep '^[A-Z]'); do [ $(grep $s $INPUT_FILE -c) -eq 0 ] && echo $s; done `; do git grep $ss ; done )
+
+.. TODO: still undocumented GMX_QM_GAUSSIAN_NCPUS
+
 Environment Variables
 =====================
 
@@ -19,6 +27,9 @@ Output Control
 ``GMX_CONSTRAINTVIR``
         Print constraint virial and force virial energy terms.
 
+``GMX_DUMP_NL``
+        Neighbour list dump level; default 0.
+
 ``GMX_MAXBACKUP``
         |Gromacs| automatically backs up old
         copies of files when trying to write a new file of the same
@@ -52,9 +63,6 @@ Output Control
         Be careful not to use a command which blocks the terminal
         (e.g. ``vi``), since multiple instances might be run.
 
-``GMX_VIRIAL_TEMPERATURE``
-        print virial temperature energy term
-
 ``GMX_LOG_BUFFER``
         the size of the buffer for file I/O. When set
         to 0, all file I/O will be unbuffered and therefore very slow.
@@ -135,6 +143,11 @@ Performance and Run Control
         ensemble set in the :ref:`tpr` file does not match that of the
         :ref:`cpt` file.
 
+``GMX_BONDED_NTHREAD_UNIFORM``
+        Value of the number of threads per rank from which to switch from uniform
+        to localized bonded interaction distribution; optimal value dependent on
+        system and hardware, default value is 4.
+
 ``GMX_CUDA_NB_EWALD_TWINCUT``
         force the use of twin-range cutoff kernel even if :mdp:`rvdw` equals
         :mdp:`rcoulomb` after PP-PME load balancing. The switch to twin-range kernels is automated,
@@ -146,17 +159,12 @@ Performance and Run Control
 ``GMX_CUDA_NB_TAB_EWALD``
         force the use of tabulated Ewald kernels. Should be used only for benchmarking.
 
-``GMX_CUDA_STREAMSYNC``
-        force the use of cudaStreamSynchronize on ECC-enabled GPUs, which leads
-        to performance loss due to a known CUDA driver bug present in API v5.0 NVIDIA drivers (pre-30x.xx).
-        Cannot be set simultaneously with ``GMX_NO_CUDA_STREAMSYNC``.
-
 ``GMX_DISABLE_CUDALAUNCH``
         disable the use of the lower-latency cudaLaunchKernel API even when supported (CUDA >=v7.0).
         Should only be used for benchmarking purposes.
 
 ``GMX_DISABLE_CUDA_TIMING``
-        Disables GPU timing of CUDA tasks; synonymous with ``GMX_DISABLE_GPU_TIMING``.
+        Deprecated. Use ``GMX_DISABLE_GPU_TIMING`` instead.
 
 ``GMX_CYCLE_ALL``
         times all code during runs.  Incompatible with threads.
@@ -280,6 +288,9 @@ Performance and Run Control
         force the use of 4xN SIMD CPU non-bonded kernels,
         mutually exclusive of ``GMX_NBNXN_SIMD_2XNN``.
 
+``GMX_NOOPTIMIZEDKERNELS``
+        deprecated, use ``GMX_DISABLE_SIMD_KERNELS`` instead.
+
 ``GMX_NO_ALLVSALL``
         disables optimized all-vs-all kernels.
 
@@ -291,11 +302,6 @@ Performance and Run Control
         force the use of LJ paremeter lookup instead of using combination rules
         in the non-bonded kernels.
 
-``GMX_NO_CUDA_STREAMSYNC``
-        the opposite of ``GMX_CUDA_STREAMSYNC``. Disables the use of the
-        standard cudaStreamSynchronize-based GPU waiting to improve performance when using CUDA driver API
-        ealier than v5.0 with ECC-enabled GPUs.
-
 ``GMX_NO_INT``, ``GMX_NO_TERM``, ``GMX_NO_USR1``
         disable signal handlers for SIGINT,
         SIGTERM, and SIGUSR1, respectively.
@@ -309,8 +315,8 @@ Performance and Run Control
         fast enough to complete the non-bonded calculations while the CPU does bonded force and PME computation.
         Freezing the particles will be required to stop the system blowing up.
 
-``GMX_NO_PULLVIR``
-        when set, do not add virial contribution to COM pull forces.
+``GMX_PULL_PARTICIPATE_ALL``
+        disable the default heuristic for when to use a separate pull MPI communicator (at >=32 ranks).
 
 ``GMX_NOPREDICT``
         shell positions are not predicted.
@@ -324,9 +330,10 @@ Performance and Run Control
         to a value of 10. Setting this environment variable to any other integer value overrides this hard-coded
         value.
 
-``GMX_PME_NTHREADS``
-        set the number of OpenMP or PME threads (overrides the number guessed by
-        :ref:`gmx mdrun`.
+``GMX_PME_NUM_THREADS``
+        set the number of OpenMP or PME threads; overrides the default set by
+        :ref:`gmx mdrun`; can be used instead of the `-npme` command line option,
+        also useful to set heterogeneous per-process/-node thread count.
 
 ``GMX_PME_P3M``
         use P3M-optimized influence function instead of smooth PME B-spline interpolation.
@@ -456,11 +463,11 @@ compilation of OpenCL kernels, but they are also used in device selection.
         simplicity of stepping in a kernel and see what is happening.
 
 ``GMX_OCL_DISABLE_I_PREFETCH``
-        Disables i-atom data (type or LJ parameter) prefetch allowig
+        Disables i-atom data (type or LJ parameter) prefetch allowing
         testing.
 
 ``GMX_OCL_ENABLE_I_PREFETCH``
-        Enables i-atom data (type or LJ parameter) prefetch allowig
+        Enables i-atom data (type or LJ parameter) prefetch allowing
         testing on platforms where this behavior is not default.
 
 ``GMX_OCL_NB_ANA_EWALD``
@@ -519,7 +526,7 @@ Analysis and Core Functions
         sets the maximum number of residues to be renumbered by
         :ref:`gmx grompp`. A value of -1 indicates all residues should be renumbered.
 
-``GMX_FFRTP_TER_RENAME``
+``GMX_NO_FFRTP_TER_RENAME``
         Some force fields (like AMBER) use specific names for N- and C-
         terminal residues (NXXX and CXXX) as :ref:`rtp` entries that are normally renamed. Setting
         this environment variable disables this renaming.
index a18792a7810447e0941e9cbd38444a2f555685f5..5f3b04b794c58897e2223060cde274eb2a8bc99e 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * This file is part of the GROMACS molecular simulation package.
  *
- * Copyright (c) 2016,2017, by the GROMACS development team, led by
+ * Copyright (c) 2016,2017,2018, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -155,8 +155,8 @@ struct PmeGpuCuda
     /*! \brief A boolean which tells whether the complex and real grids for cuFFT are different or same. Currenty true. */
     bool performOutOfPlaceFFT;
     /*! \brief A boolean which tells if the CUDA timing events are enabled.
-     * True by default, disabled by setting the environment variable GMX_DISABLE_CUDA_TIMING.
-     * FIXME: this should also be disabled if any other GPU task is running concurrently on the same device,
+     *  False by default, can be enabled by setting the environment variable GMX_ENABLE_GPU_TIMING.
+     *  Note: will not be reliable when multiple GPU tasks are running concurrently on the same device context,
      * as CUDA events on multiple streams are untrustworthy.
      */
     bool                                             useTiming;