GROMACS version 2020.4
[gromacs.git] / docs / release-notes / 2020 / 2020.4.rst
blob4a5cd573024f6268a840b24e36fc71fd5597d745
1 GROMACS 2020.4 release notes
2 ----------------------------
4 This version was released on October 6th, 2020. These release notes
5 document the changes that have taken place in GROMACS since the
6 previous 2020.3 version, to fix known issues. It also incorporates all
7 fixes made in version 2019.6 and earlier, which you can find described
8 in the :ref:`release-notes`.
10 .. Note to developers!
11    Please use """"""" to underline the individual entries for fixed issues in the subfolders,
12    otherwise the formatting on the webpage is messed up.
13    Also, please use the syntax :issue:`number` to reference issues on redmine, without the
14    a space between the colon and number!
16 Fixes where mdrun could behave incorrectly
17 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
19 Bug fix for the GPU version of LINCS in multiple domain case
20 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
22 Increase in the maximum number of coupled constraints in the
23 domain did not trigger memory re-allocation, which is now fixed.
24 This can happen, e.g. when big molecule enters the domain, previously
25 occupied by smaller molecules. The bug does not affect the single
26 domain case.
28 Fix index handling of N-body virtual sites with domain decomposition
29 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
31 Incorrect indexing would be used to handle N-body virtual sites in
32 the domain decomposition code. This would usually lead to crashes
33 due to illegal or incorrect memory usage.
35 :issue:`3635`
37 Fix assertion failure with LJ-PME and dispersion correction
38 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
40 With vdw-type=PME and dispersion correction, mdrun would exit with
41 an assertion failure during PME tuning.
43 :issue:`3677`
45 Bug fix for FEP calculations with modular simulator and domain decomposition
46 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
47 When using the modular simulator, domain decomposition and free energy
48 calculations with perturbed masses, the simulation would always be
49 performed using the masses at lambda=0 instead of the actual lambda value.
52 Added workaround for RDRAND not always returning random numbers on Ryzen
53 """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
54 On AMD Ryzen 3000 series CPUs, the hardware random number generator (RDRAND)
55 can behave incorrectly, always returning -1 (0xFFFFFFFF). When this hardware bug
56 is detected at runtime, |Gromacs| will switch to its software-based pseudo-random
57 number generator instead.
59 While many motherboard vendors have been distributing firmware updates that
60 contain microcode fixes and most motherboards are sold with these factory-installed,
61 there can still be some systems affected that didn't receive the updates.
63 In case you ran simulations on one of these systems, in theory all random
64 number seeding could be affected (see below for algorithms), since it would
65 mean the same seed is used. Even this should be fine for virtually all individual
66 simulations since the generated numbers are still random. The most likely case that would
67 be seriously affected is if you use identical starting conformations and start many
68 simulations with different random seeds generated automatically (instead of
69 manually selecting your seeds) - then the Ryzen hardware bug could mean all
70 your simulations actually get the same generated initial velocities, or the same stochastic
71 changes, etc. depending which algorithms you are using.
73 A list of affected algorithms can be found below:
75 #.  Seeding in `gmx grompp` is affected if no user supplied seed is used (e.g. if ``-1``
76     is used to ask |Gromacs| to generate a seed). This can affect Langevin/Stochastic dynamics,
77     v-rescale thermostat, anything Monte-Carlo related and the generation of random velocities.
78 #.  Decision when to exchange replicas during replica exchange simulations.
79 #.  Simulations using the random components from ``AWH``.
80 #.  Some analysis and preparation tools might be affected, e.g. free volume calculation,
81     ion placement, WHAM, normal mode analysis and PME error estimates.
83 .. AKA  https://xkcd.com/221/
85 Diagnosing: to aid detecting the error, run ``gmx mdrun -debug 1`` with |Gromacs| 2020.4 or later,
86 which will produce a debug log, typically called ``gmx.debug``. This file will contain
87 the following message if the processor the program ran on is affected:
89 -   Hardware random number generator (RDRAND) returned -1 (0xFFFFFFFF) twice in
90     a row. This may be due to a known bug in AMD Ryzen microcode.
91     Will use pseudo-random number generator (PRNG) rather than hardware device.
93 Earlier releases will fail SeedTest.makeRandomSeed test from unit tests suite on the affected systems.
94 To check, run ``make check`` in your build folder. You can also find a sample testing code at the link below.
96 For more information on the issue, please check
97 `this website <https://arstechnica.com/gadgets/2019/10/how-a-months-old-amd-microcode-bug-destroyed-my-weekend/>`_.
99 Fixes for ``gmx`` tools
100 ^^^^^^^^^^^^^^^^^^^^^^^
102 Fix default output with gmx trjcat -demux
103 """""""""""""""""""""""""""""""""""""""""
105 Files would not be written when using default file name output.
107 :issue:`3653`
109 Fixes that affect portability
110 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
112 CUDA 11.0 supported
113 """""""""""""""""""
115 A build with CUDA 11.0 now configures and passes tests.
116 Building with CUDA 11.0 means that hardware with CC 3.0 is no longer supported,
117 while CC 8.0 can now be used.
119 :issue:`3632`
121 Fix building with MSVC
122 """"""""""""""""""""""
124 The build would fail due to a missing header.
126 :issue:`3669`
128 Only check for RDTSCP on x86 platforms
129 """"""""""""""""""""""""""""""""""""""
132 Miscellaneous
133 ^^^^^^^^^^^^^
135 Fix crash of grompp when the whole system is frozen
136 """""""""""""""""""""""""""""""""""""""""""""""""""
138 When the whole system would be frozen, grompp would crash with
139 a segmentation fault.
141 :issue:`3683`
143 Fixes the unexpected change in molecule indexing in output after simulation
144 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
146 Molecule indices of repeat molecules are now again numbered consecutively as
147 expected (instead of all ``1``).
149 :issue:`3575`
151 Fix ``INTERFACE_INCLUDE_DIRECTORIES`` for ``libgromacs`` CMake target
152 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
154 :file:`libgromacs.cmake` was malformed, referencing non-existent directories.
156 :issue:`3592`