Merge remote-tracking branch 'origin/release-2021' into master
authorAndrey Alekseenko <al42and@gmail.com>
Tue, 14 Sep 2021 17:16:06 +0000 (20:16 +0300)
committerAndrey Alekseenko <al42and@gmail.com>
Tue, 14 Sep 2021 17:20:56 +0000 (20:20 +0300)
Conflicts:
cmake/gmxVersionInfo.cmake
src/gromacs/ewald/pme_gather.cu
src/gromacs/ewald/pme_gpu_calculate_splines.cuh
src/gromacs/ewald/pme_gpu_internal.cpp
src/gromacs/ewald/tests/pmetestcommon.cpp
src/gromacs/gmxana/gmx_cluster.cpp
src/gromacs/gmxpreprocess/gen_vsite.cpp
src/gromacs/simd/support.cpp
src/gromacs/tools/trjconv.cpp

19 files changed:
1  2 
cmake/gmxVersionInfo.cmake
docs/user-guide/mdrun-performance.rst
src/gromacs/analysisdata/modules/histogram.h
src/gromacs/ewald/pme_gather.cu
src/gromacs/ewald/pme_gpu_calculate_splines.cuh
src/gromacs/ewald/pme_gpu_internal.cpp
src/gromacs/ewald/pme_spread.clh
src/gromacs/ewald/pme_spread.cu
src/gromacs/ewald/tests/pmetestcommon.cpp
src/gromacs/gmxana/gmx_dielectric.cpp
src/gromacs/gmxana/gmx_rmsf.cpp
src/gromacs/gmxana/gmx_wham.cpp
src/gromacs/gmxpreprocess/gen_vsite.cpp
src/gromacs/gmxpreprocess/readir.cpp
src/gromacs/linearalgebra/eigensolver.cpp
src/gromacs/simd/support.cpp
src/gromacs/tools/eneconv.cpp
src/gromacs/tools/trjconv.cpp
src/gromacs/utility/coolstuff.cpp

index c4485a330f4951445b192353fb0abcb689a7b7a2,e9ef890f20a36b98456460170caa2cae4a34b248..34c3a02492a22c7c6488ef6c7352d5b0474e88cd
@@@ -229,6 -228,15 +229,15 @@@ else(
  endif()
  set(GMX_VERSION_STRING "${GMX_VERSION}${GMX_VERSION_SUFFIX}")
  
 -set(REGRESSIONTEST_BRANCH "release-2021")
+ set(REGRESSIONTEST_VERSION "${GMX_VERSION_STRING}")
++set(REGRESSIONTEST_BRANCH "master")
+ # Run the regressiontests packaging job with the correct pakage
+ # version string, and the release box checked, in order to have it
+ # build the regressiontests tarball with all the right naming. The
+ # naming affects the md5sum that has to go here, and if it isn't right
+ # release workflow will report a failure.
+ set(REGRESSIONTEST_MD5SUM "93956ea42c4d16fdd541518c05972989" CACHE INTERNAL "MD5 sum of the regressiontests tarball for this GROMACS version")
  # If you are making a custom fork of GROMACS, please describe your
  # fork, perhaps with its version number, in the value of
  # GMX_VERSION_STRING_OF_FORK here. This string will appear in the
Simple merge
Simple merge
index 6e663175e0eefd05b04bed49d7616b6fecbd97f8,1e3ccefb01aa57bf1aaa268efcbe16aee13ecf03..1ff60f7ed17497fceda74771c9269667f3775df6
@@@ -173,8 -173,12 +173,12 @@@ __device__ __forceinline__ void pme_gpu
   * \tparam[in] atomsPerBlock        Number of atoms processed by a block - should be accounted for
   *                                  in the sizes of the shared memory arrays.
   * \tparam[in] atomsPerWarp         Number of atoms processed by a warp
-  * \tparam[in] writeSmDtheta        Bool controlling if the theta derivative should be written to shared memory. Enables calculation of dtheta if set.
-  * \tparam[in] writeGlobal          A boolean which tells if the theta values and gridlines should be written to global memory. Enables calculation of dtheta if set.
 - * \tparam[in] writeSmDtheta        Bool controling if the theta derivative should be written to
++ * \tparam[in] writeSmDtheta        Bool controlling if the theta derivative should be written to
+  *                                  shared memory. Enables calculation of dtheta if set.
+  * \tparam[in] writeGlobal          A boolean which tells if the theta values and gridlines should
+  *                                  be written to global memory. Enables calculation of dtheta if
+  *                                  set.
+  * \tparam[in] numGrids             The number of grids using the splines.
   * \param[in]  kernelParams         Input PME CUDA data in constant memory.
   * \param[in]  atomIndexOffset      Starting atom index for the execution block w.r.t. global memory.
   * \param[in]  atomX                Atom coordinate of atom processed by thread.
Simple merge
Simple merge
index 3eda383e7acfc6986df140f789f7ca817ae175be,7cdabb9c498013f0573108aa17b4e119aeddb601..a3c4409fca0ac70314de02aa2217d452999f8d2b
@@@ -910,7 -889,8 +911,7 @@@ const char* codePathToString(CodePath c
  PmeTestHardwareContext::PmeTestHardwareContext() : codePath_(CodePath::CPU) {}
  
  PmeTestHardwareContext::PmeTestHardwareContext(TestDevice* testDevice) :
-     codePath_(CodePath::CPU), testDevice_(testDevice)
 -    codePath_(CodePath::GPU),
 -    testDevice_(testDevice)
++    codePath_(CodePath::GPU), testDevice_(testDevice)
  {
      setActiveDevice(testDevice_->deviceInfo());
      pmeGpuProgram_ = buildPmeGpuProgram(testDevice_->deviceContext());
Simple merge
Simple merge
index f747c892990f1af2e5123dc1b44460fabc7d041d,bcace1190ff52cbbcf247eee0c034def632ad184..5da2b4d1d7553b10ab692ecef0b8b8462140be4e
@@@ -133,17 -135,17 +133,17 @@@ enu
      bsMethod_trajGauss
  };
  
- //! Parameters of one pull coodinate
+ //! Parameters of one pull coordinate
  typedef struct
  {
 -    int  pull_type;       //!< such as constraint, umbrella, ...
 -    int  geometry;        //!< such as distance, direction, cylinder
 -    int  ngroup;          //!< the number of pull groups involved
 -    ivec dim;             //!< pull dimension with geometry distance
 -    int  ndim;            //!< nr of pull_dim != 0
 -    real k;               //!< force constants in tpr file
 -    real init_dist;       //!< reference displacement
 -    char coord_unit[256]; //!< unit of the displacement
 +    PullingAlgorithm  pull_type;       //!< such as constraint, umbrella, ...
 +    PullGroupGeometry geometry;        //!< such as distance, direction, cylinder
 +    int               ngroup;          //!< the number of pull groups involved
 +    ivec              dim;             //!< pull dimension with geometry distance
 +    int               ndim;            //!< nr of pull_dim != 0
 +    real              k;               //!< force constants in tpr file
 +    real              init_dist;       //!< reference displacement
 +    char              coord_unit[256]; //!< unit of the displacement
  } t_pullcoord;
  
  //! Parameters of the umbrella potentials
@@@ -1621,11 -2123,9 +1621,11 @@@ static void read_tpr_header(const char
                  gmx_fatal(FARGS,
                            "%s: Pull coordinate %d is of type \"%s\", expected \"umbrella\". Only "
                            "umbrella coodinates can enter WHAM.\n"
-                           "If you have umrella and non-umbrella coordinates, you can select the "
+                           "If you have umbrella and non-umbrella coordinates, you can select the "
                            "umbrella coordinates with gmx wham -is\n",
 -                          fn, i + 1, epull_names[header->pcrd[i].pull_type]);
 +                          fn,
 +                          i + 1,
 +                          enumValueToString(header->pcrd[i].pull_type));
              }
              if (!geometryIsSet)
              {
index 648734805326ece23b07b598965805f07dcc5738,ffa7fde37ec42ff0cc121d4b053fb8324dd24382..b7e663640ce99d664779b61938320e322e002e57
@@@ -373,8 -379,7 +373,8 @@@ static void read_vsite_database(const c
                      break;
                      default:
                          gmx_fatal(FARGS,
-                                   "Didnt find a case for directive %s in read_vsite_database\n",
 -                                  "Didn't find a case for directive %s in read_vsite_database\n", dirstr);
++                                  "Didn't find a case for directive %s in read_vsite_database\n",
 +                                  dirstr);
                  }
              }
          }
index 6b8c64ea3abaff4a4932206e73bd6bb237bb96f2,05c87c37864a57f81d4bcf41f985736be02d1ac0..28b4184f14c761463635096a9dfe92cbcfd03e95
@@@ -4342,7 -4227,7 +4342,7 @@@ void triple_check(const char* mdparin, 
  
      set_warning_line(wi, mdparin, -1);
  
-     if (allTrue(haveAbsoluteReference(*ir)) && allTrue(havePositionRestraints(*sys)))
 -    if (ir->comm_mode != ecmNO && allTrue(havePositionRestraints(*sys)))
++    if (ir->comm_mode != ComRemovalAlgorithm::No && allTrue(havePositionRestraints(*sys)))
      {
          warning_note(wi,
                       "Removing center of mass motion in the presence of position restraints might "
index 954a840529e94746b881576f638122ca0743073a,146a28c8a31b8dea772cfd8a604be7d801f87a58..71b7a8bec4b34ae78d02f05ba25a2cbc9fadc7df
@@@ -282,11 -313,10 +282,11 @@@ bool simdCheck(gmx::SimdType wanted, FI
          // the supported one, but AVX128Fma is an exception: AMD CPUs will (strongly) prefer
          // AVX128Fma, but they will work fine with AVX too. Thus, make an exception for this.
          logMsg = wrapper.wrapToString(
-                 formatString("Highest SIMD level requested by all nodes in run: %s\n"
+                 formatString("Highest SIMD level supported by all nodes in run: %s\n"
                               "SIMD instructions selected at compile time:       %s\n"
-                              "Compiled SIMD newer than requested; program might crash.",
+                              "Compiled SIMD newer than supported; program might crash.",
 -                             simdString(wanted).c_str(), simdString(compiled).c_str()));
 +                             simdString(wanted).c_str(),
 +                             simdString(compiled).c_str()));
          warnMsg = logMsg;
      }
      else if (wanted != compiled)
Simple merge
Simple merge
Simple merge