Portability¶
Python environment¶
Where Python is required, CPython versions 3.6 to 3.8 are supported.
CMake now detects Python using
FindPython3.
If you previously used PYTHON_EXECUTABLE
to hint the location of the Python
interpreter, you should instead specify the Python “root” or “prefix” path
(the directory containing ./bin/python3
) with CMake variable
Python3_ROOT_DIR
or CMAKE_PREFIX_PATH
. As other infrastructure evolves,
PYTHON_EXECUTABLE
may cease to have the desired effect without warning.
CMake¶
Updated required CMake version to 3.13.
C++ standard¶
GROMACS has updated the required C++ standards compliance from C++14 to C++17, and requires 2017 standard library features. See the install guide for details.
Cygwin¶
GROMACS now builds on Cygwin with both gcc and clang compilers.
Windows¶
GROMACS now builds correctly on Windows with MSVC even when the path to the source or build directory has a space in it.
Builds with MSVC 2019 correctly detect the proper static linking setup during CMake configuration.
RDTSCP usage and reporting¶
GROMACS now defaults always on x86 to use the RDTSCP machine
instruction for lower latency timing. Very old machines might need to
configure with GMX_USE_RDTSCP=off
. Non-x86 platforms are
unaffected, except that they will no longer report that RDTSCP is
disabled (because that is self-evident).
armv8+sve support (ARM_SVE)¶
Support for ARM Scalable Vector Extensions (SVE) has been added.
GROMACS supports SVE vector length fixed at CMake configure time
(typically via the -msve-vector-bits=<len> compiler option),
which is at the time of the release supported in GNU GCC 10 and later,
and will supported soon by LLVM 12 and compilers based on this.
The default is to detect the default vector length at CMake configure time,
and that can be changed with the GMX_SIMD_ARM_SVE_LENGTH=<bits>
option.
Supported values are 128, 256, 512 and 1024. Note that the nonbonded
kernels have not been optimized for ARM_SVE as of yet.
ARM_SVE support is contributed by the Research Organization for Science Information and Technology (RIST)