Commit 524c0449 authored by Nicholas Breen's avatar Nicholas Breen

New upstream version 2018

parent df69c7b3
......@@ -857,13 +857,18 @@ else()
# RPATHs), and makes the binaries in the build tree relocatable.
if(GMX_LIB_INSTALL_DIR STREQUAL "lib")
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
if(POLICY CMP0068)
cmake_policy(SET CMP0068 NEW) # From CMake-3.9
set(CMAKE_BUILD_WITH_INSTALL_NAME_DIR TRUE)
endif()
endif()
# Set the RPATH as relative to the executable location to make the
# binaries relocatable.
if(NOT CMAKE_SYSTEM_NAME STREQUAL "Darwin") #Assume OS X >=10.5
set(CMAKE_INSTALL_RPATH "\$ORIGIN/../${GMX_LIB_INSTALL_DIR}")
else()
if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") #Assume OS X >=10.5
set(CMAKE_INSTALL_RPATH "@executable_path/../${GMX_LIB_INSTALL_DIR}")
set(CMAKE_INSTALL_NAME_DIR ${CMAKE_INSTALL_RPATH})
else()
set(CMAKE_INSTALL_RPATH "\$ORIGIN/../${GMX_LIB_INSTALL_DIR}")
endif()
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
set(CMAKE_MACOSX_RPATH 1)
......
This diff is collapsed.
......@@ -28,6 +28,9 @@ gcc-7 mpi no-openmp fftpack mdrun-only
# TODO enable simd=avx_256 in this config, and change the above description once #2335 is resolved
icc-18 npme=1 nranks=2 no-openmp double fftpack release simd=none
# Test CUDA build on a slave with no CUDA devices
gcc-4.9 gpu cuda-7.0 openmp release-with-assert
# Test non-default GMX_PREFER_STATIC_LIBS behavior
# TODO enable this
# msvc-2015 double no-threadmpi no-prefer-static-libs release-with-assert
......@@ -65,4 +68,3 @@ gcc-5 gpu nranks=4 gpu_id=1 cuda-8.0 release-with-assert
# Test own-fftw build (from local copy of the file)
# Test mdrun -tunepme (e.g. with relaxed tolerances, for now)
# Consider testing of other CMake option paths
# Add CUDA build and run the tests on a node with no CUDA GPUs
This diff is collapsed.
# James Bigler, NVIDIA Corp (nvidia.com - jbigler)
# Abe Stephens, SCI Institute -- http://www.sci.utah.edu/~abe/FindCuda.html
#
# Copyright (c) 2008 - 2009 NVIDIA Corporation. All rights reserved.
#
# Copyright (c) 2007-2009
# Scientific Computing and Imaging Institute, University of Utah
#
# This code is licensed under the MIT License. See the FindCUDA.cmake script
# for the text of the license.
# The MIT License
#
# License for the specific language governing rights and limitations under
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
#
#######################################################################
# This converts a file written in makefile syntax into one that can be included
# by CMake.
file(READ ${input_file} depend_text)
if (NOT "${depend_text}" STREQUAL "")
# message("FOUND DEPENDS")
string(REPLACE "\\ " " " depend_text ${depend_text})
# This works for the nvcc -M generated dependency files.
string(REGEX REPLACE "^.* : " "" depend_text ${depend_text})
string(REGEX REPLACE "[ \\\\]*\n" ";" depend_text ${depend_text})
set(dependency_list "")
foreach(file ${depend_text})
string(REGEX REPLACE "^ +" "" file ${file})
# OK, now if we had a UNC path, nvcc has a tendency to only output the first '/'
# instead of '//'. Here we will test to see if the file exists, if it doesn't then
# try to prepend another '/' to the path and test again. If it still fails remove the
# path.
if(NOT EXISTS "${file}")
if (EXISTS "/${file}")
set(file "/${file}")
else()
message(WARNING " Removing non-existent dependency file: ${file}")
set(file "")
endif()
endif()
if(NOT IS_DIRECTORY "${file}")
# If softlinks start to matter, we should change this to REALPATH. For now we need
# to flatten paths, because nvcc can generate stuff like /bin/../include instead of
# just /include.
get_filename_component(file_absolute "${file}" ABSOLUTE)
list(APPEND dependency_list "${file_absolute}")
endif()
endforeach()
else()
# message("FOUND NO DEPENDS")
endif()
# Remove the duplicate entries and sort them.
list(REMOVE_DUPLICATES dependency_list)
list(SORT dependency_list)
foreach(file ${dependency_list})
set(cuda_nvcc_depend "${cuda_nvcc_depend} \"${file}\"\n")
endforeach()
file(WRITE ${output_file} "# Generated by: make2cmake.cmake\nSET(CUDA_NVCC_DEPEND\n ${cuda_nvcc_depend})\n\n")
# James Bigler, NVIDIA Corp (nvidia.com - jbigler)
# Abe Stephens, SCI Institute -- http://www.sci.utah.edu/~abe/FindCuda.html
#
# Copyright (c) 2008 - 2009 NVIDIA Corporation. All rights reserved.
#
# Copyright (c) 2007-2009
# Scientific Computing and Imaging Institute, University of Utah
#
# This code is licensed under the MIT License. See the FindCUDA.cmake script
# for the text of the license.
# The MIT License
#
# License for the specific language governing rights and limitations under
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
#
#######################################################################
# Parses a .cubin file produced by nvcc and reports statistics about the file.
file(READ ${input_file} file_text)
if (NOT "${file_text}" STREQUAL "")
string(REPLACE ";" "\\;" file_text ${file_text})
string(REPLACE "\ncode" ";code" file_text ${file_text})
list(LENGTH file_text len)
foreach(line ${file_text})
# Only look at "code { }" blocks.
if(line MATCHES "^code")
# Break into individual lines.
string(REGEX REPLACE "\n" ";" line ${line})
foreach(entry ${line})
# Extract kernel names.
if (${entry} MATCHES "[^g]name = ([^ ]+)")
set(entry "${CMAKE_MATCH_1}")
# Check to see if the kernel name starts with "_"
set(skip FALSE)
# if (${entry} MATCHES "^_")
# Skip the rest of this block.
# message("Skipping ${entry}")
# set(skip TRUE)
# else ()
message("Kernel: ${entry}")
# endif ()
endif()
# Skip the rest of the block if necessary
if(NOT skip)
# Registers
if (${entry} MATCHES "reg([ ]+)=([ ]+)([^ ]+)")
set(entry "${CMAKE_MATCH_3}")
message("Registers: ${entry}")
endif()
# Local memory
if (${entry} MATCHES "lmem([ ]+)=([ ]+)([^ ]+)")
set(entry "${CMAKE_MATCH_3}")
message("Local: ${entry}")
endif()
# Shared memory
if (${entry} MATCHES "smem([ ]+)=([ ]+)([^ ]+)")
set(entry "${CMAKE_MATCH_3}")
message("Shared: ${entry}")
endif()
if (${entry} MATCHES "^}")
message("")
endif()
endif()
endforeach()
endif()
endforeach()
else()
# message("FOUND NO DEPENDS")
endif()
This diff is collapsed.
#
# This file is part of the GROMACS molecular simulation package.
#
# Copyright (c) 2012,2013,2014,2015,2016,2017, by the GROMACS development team, led by
# Copyright (c) 2012,2013,2014,2015,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.
......@@ -135,6 +135,8 @@ if (${FFTW}_FOUND)
${${FFTW}_FUNCTION_PREFIX}_have_simd_avx2_128
${${FFTW}_FUNCTION_PREFIX}_have_simd_avx512
${${FFTW}_FUNCTION_PREFIX}_have_simd_avx_128_fma
${${FFTW}_FUNCTION_PREFIX}_have_simd_avx_512
${${FFTW}_FUNCTION_PREFIX}_have_simd_kcvi
${${FFTW}_FUNCTION_PREFIX}_have_simd_altivec
${${FFTW}_FUNCTION_PREFIX}_have_simd_neon
${${FFTW}_FUNCTION_PREFIX}_have_simd_vsx
......
/*
* This file is part of the GROMACS molecular simulation package.
*
* Copyright (c) 2015, by the GROMACS development team, led by
* Copyright (c) 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.
......@@ -32,51 +32,11 @@
* To help us fund GROMACS development, we humbly ask that you cite
* the research papers on the package. Check out http://www.gromacs.org.
*/
/*! \internal \file
* \brief Tests for base definitions (only alignment attributes for now)
*
* \author Erik Lindahl <erik.lindahl@gmail.com>
* \ingroup module_utility
*/
#include "gmxpre.h"
#include "gromacs/utility/basedefinitions.h"
#include <cstdint>
#include <gtest/gtest.h>
#include "gromacs/utility/real.h"
namespace gmx
{
__global__ void kernel (void) {}
TEST(BasedefinitionsTest, GmxAlignedDeclaresAlignedVariable)
int
main()
{
GMX_ALIGNED(real, 2) r1;
GMX_ALIGNED(real, 4) r2;
GMX_ALIGNED(real, 8) r3;
std::uint64_t addr1 = reinterpret_cast<std::uint64_t>(&r1);
std::uint64_t addr2 = reinterpret_cast<std::uint64_t>(&r2);
std::uint64_t addr3 = reinterpret_cast<std::uint64_t>(&r3);
EXPECT_EQ(0, addr1 % 2);
EXPECT_EQ(0, addr2 % 4);
EXPECT_EQ(0, addr3 % 8);
GMX_ALIGNED(int, 2) i1;
GMX_ALIGNED(int, 4) i2;
GMX_ALIGNED(int, 8) i3;
addr1 = reinterpret_cast<std::uint64_t>(&i1);
addr2 = reinterpret_cast<std::uint64_t>(&i2);
addr3 = reinterpret_cast<std::uint64_t>(&i3);
EXPECT_EQ(0, addr1 % 2);
EXPECT_EQ(0, addr2 % 4);
EXPECT_EQ(0, addr3 % 8);
}
kernel<<< 1, 1>>> ();
return 0;
}
#
# This file is part of the GROMACS molecular simulation package.
#
# Copyright (c) 2014,2015,2016, by the GROMACS development team, led by
# Copyright (c) 2014,2015,2016,2017, 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.
......@@ -118,8 +118,16 @@ function (gmx_cpack_write_config)
# Settings specific to source packages.
set(CPACK_SOURCE_GENERATOR TGZ)
set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}")
set(CPACK_SOURCE_IGNORE_FILES
"\\\\.isreposource$;\\\\.git/;\\\\.gitignore$;\\\\.gitattributes;INSTALL-dev;")
list(APPEND FILES_NOT_INCLUDED_IN_SOURCE_PACKAGE
\\\\.isreposource
\\\\.git
\\\\.gitignore
\\\\.gitattributes
INSTALL-dev
cmake/FindCUDA\\\\.cmake
cmake/FindCUDA)
set(CPACK_SOURCE_IGNORE_FILES ${FILES_NOT_INCLUDED_IN_SOURCE_PACKAGE})
# Get the list of directories added with gmx_cpack_add_generated_source_directory()
get_property(CPACK_SOURCE_INSTALLED_DIRECTORIES
GLOBAL PROPERTY GMX_CPACK_SOURCE_INSTALLED_DIRECTORIES)
......
#
# This file is part of the GROMACS molecular simulation package.
#
# Copyright (c) 2012,2013,2014,2015,2016,2017, by the GROMACS development team, led by
# Copyright (c) 2012,2013,2014,2015,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.
......@@ -271,6 +271,31 @@ macro(gmx_gpu_setup)
if(NOT GMX_OPENMP)
message(WARNING "To use GPU acceleration efficiently, mdrun requires OpenMP multi-threading. Without OpenMP a single CPU core can be used with a GPU which is not optimal. Note that with MPI multiple processes can be forced to use a single GPU, but this is typically inefficient. You need to set both C and C++ compilers that support OpenMP (CC and CXX environment variables, respectively) when using GPUs.")
endif()
if(NOT GMX_CLANG_CUDA)
gmx_check_if_changed(GMX_CHECK_NVCC CUDA_NVCC_EXECUTABLE CUDA_HOST_COMPILER CUDA_NVCC_FLAGS)
if(GMX_CHECK_NVCC OR NOT GMX_NVCC_WORKS)
message(STATUS "Check for working NVCC/C compiler combination")
execute_process(COMMAND ${CUDA_NVCC_EXECUTABLE} -ccbin ${CUDA_HOST_COMPILER} -c ${CUDA_NVCC_FLAGS} ${CMAKE_SOURCE_DIR}/cmake/TestCUDA.cu
RESULT_VARIABLE _cuda_test_res
OUTPUT_VARIABLE _cuda_test_out
ERROR_VARIABLE _cuda_test_err
OUTPUT_STRIP_TRAILING_WHITESPACE)
if(${_cuda_test_res})
message(STATUS "Check for working NVCC/C compiler combination - broken")
if(${_cuda_test_err} MATCHES "nsupported")
message(FATAL_ERROR "NVCC/C compiler combination does not seem to be supported. CUDA frequently does not support the latest versions of the host compiler, so you might want to try an earlier C/C++ compiler version and make sure your CUDA compiler and driver are as recent as possible.")
else()
message(FATAL_ERROR "CUDA compiler does not seem to be functional.")
endif()
elseif(NOT GMX_CUDA_TEST_COMPILER_QUIETLY)
message(STATUS "Check for working NVCC/C compiler combination - works")
set(GMX_NVCC_WORKS TRUE CACHE INTERNAL "Nvcc can compile a trivial test program")
endif()
endif() # GMX_CHECK_NVCC
endif() #GMX_CLANG_CUDA
endif() # GMX_GPU
if (GMX_CLANG_CUDA)
......
#
# This file is part of the GROMACS molecular simulation package.
#
# Copyright (c) 2012,2013,2014,2015,2016,2017, by the GROMACS development team, led by
# Copyright (c) 2012,2013,2014,2015,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.
......@@ -323,7 +323,7 @@ endif()
# breaks something. The actual test source file is built if
# SIMD_AVX_512_CXX_SUPPORTED is set, so it will always be included if we have
# GMX_SIMD=AVX_512.
set(GMX_ENABLE_AVX512_TESTS ON CACHE INTERNAL "Compile AVX512 code to test FMA units, even when not using AVX512 SIMD")
set(GMX_ENABLE_AVX512_TESTS ON CACHE BOOL "Compile AVX512 code to test FMA units, even when not using AVX512 SIMD")
mark_as_advanced(GMX_ENABLE_AVX512_TESTS)
if(GMX_ENABLE_AVX512_TESTS AND
......
#
# This file is part of the GROMACS molecular simulation package.
#
# Copyright (c) 2014,2015,2016,2017, by the GROMACS development team, led by
# Copyright (c) 2014,2015,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.
......@@ -191,7 +191,7 @@ set(GMX_VERSION_PATCH 0)
# candidates, where it signifies the most recent such release from
# this branch; it will be empty before the first such release, as well
# as after the final release is out.
set(GMX_VERSION_SUFFIX "-rc1")
set(GMX_VERSION_SUFFIX "")
# Conventionally with libtool, any ABI change must change the major
# version number, the minor version number should change if it's just
......@@ -226,7 +226,7 @@ endif()
set(REGRESSIONTEST_VERSION "${GMX_VERSION_STRING}")
set(REGRESSIONTEST_BRANCH "refs/heads/release-2018")
set(REGRESSIONTEST_MD5SUM "d4c535a06fd8f34c9fd21e7ee5a30808" CACHE INTERNAL "MD5 sum of the regressiontests tarball")
set(REGRESSIONTEST_MD5SUM "5a609bea6b6777072063be9e665121ef" CACHE INTERNAL "MD5 sum of the regressiontests tarball")
math(EXPR GMX_VERSION_NUMERIC
"${GMX_VERSION_MAJOR}*10000 + ${GMX_VERSION_PATCH}")
......
#
# This file is part of the GROMACS molecular simulation package.
#
# Copyright (c) 2014,2015,2016,2017, by the GROMACS development team, led by
# Copyright (c) 2014,2015,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.
......@@ -124,6 +124,14 @@ if (SPHINX_FOUND)
dev-manual/uncrustify.rst
fragments/doxygen-links.rst
install-guide/index.rst
release-notes/index.rst
release-notes/features.rst
release-notes/performance.rst
release-notes/tools.rst
release-notes/bugs-fixed.rst
release-notes/removed-features.rst
release-notes/portability.rst
release-notes/miscellaneous.rst
user-guide/index.rst
user-guide/cutoff-schemes.rst
user-guide/getting-started.rst
......@@ -131,7 +139,6 @@ if (SPHINX_FOUND)
user-guide/faq.rst
user-guide/flow.rst
user-guide/floating-point.rst
user-guide/how-to.rst
user-guide/system-preparation.rst
user-guide/managing-simulations.rst
user-guide/mdrun-features.rst
......
#
# This file is part of the GROMACS molecular simulation package.
#
# Copyright (c) 2015,2016,2017, by the GROMACS development team, led by
# Copyright (c) 2015,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.
......@@ -73,11 +73,14 @@ needs_sphinx = gmx_min_sphinx
extensions = [
'sphinx.ext.autodoc',
'sphinx.ext.graphviz',
'sphinx.ext.extlinks',
'sphinx.ext.napoleon',
'sphinx.ext.imgmath',
'sphinx.ext.ifconfig',
'gmxsphinx'
]
extlinks = {'issue': ('https://redmine.gromacs.org/issues/%s',
'Issue ')}
# Add any paths that contain templates here, relative to this directory.
# templates_path = ['_templates']
......
......@@ -16,4 +16,3 @@ Regression tests
----------------
* |gmx-regressiontests-package|
* (md5sum |REGRESSIONTEST_MD5SUM|)
......@@ -17,7 +17,7 @@ these vectors often need to be aligned on cache boundaries.
We have supported a number of different SIMD instruction sets in
the group kernels for ages, and it is now also present in the
verlet kernels and a few other places. However, with the increased
Verlet kernels and a few other places. However, with the increased
usage and several architectures with different capabilities we now
use a vendor-agnostic \Gromacs SIMD module, as documented in
\ref module_simd.
......@@ -63,7 +63,7 @@ Unfortunately there is no standard for SIMD architectures. The available
features vary a lot, but we still need to use quite a few of them to
get the best performance possible. This means some features will only
be available on certain platforms, and it is critical that we do NOT make
to many assumptions about the storage formats, their size or SIMD width.
too many assumptions about the storage formats, their size or SIMD width.
Just to give a few examples:
- On x86, double precision (64-bit) floating-point values always convert
......@@ -96,14 +96,14 @@ Just to give a few examples:
- Since boolean values can have different width for float/double and the
integers corresponding to float/double, we need to use separate boolean
types for all these values and convert between them if we e.g. want to use
result of an integer compare to select floating-point values.
the result of an integer compare to select floating-point values.
While this might sound complicated, it is actually far easier than writing
separate SIMD code for 10 architectures in both single & double. The point
is not that you need to remember the limitations above, but it is critical
that you *never assume anything about the SIMD implementation*. We
typically implement SIMD support for a new architecture in days with this
new module, and the extensions required for verlet kernels
new module, and the extensions required for Verlet kernels
are also very straightforward (group kernels can be more complex, but those
are gradually on their way out). For the higher-level
code, the only important thing is to never _assume_ anything about the SIMD
......@@ -125,7 +125,7 @@ group and Verlet kernels do insane amounts of floating-point operations,
and since we spend 85-90% of the time in these kernels it is critical that
we can optimize them as much as possible. Here, our strategy is first to
define larger high-level functions that e.g. take a number of distances
and loads the table interactions for this interaction. This way we can
and load the table interactions for this interaction. This way we can
move this architecture-specific implementation to the SIMD module, and
both achieve a reasonably clean kernel but still optimize a lot. This
is what we have done for the approximately 10 functions for the nonbonded
......@@ -261,7 +261,7 @@ converted to single precision floating-point. These are normal integers
(not a special conversion type), but since some SIMD architectures such as
SSE or AVX use different registers for integer SIMD variables having the
same width as float and double, respectively, we need to separate these
two types of integers. The actual operations you perform on the are normal
two types of integers. The actual operations you perform on them are normal
ones such as addition or multiplication.
This will also be the widest integer data type if you want to do pure
integer SIMD operations, but that will not be supported on all platforms.
......@@ -398,7 +398,7 @@ the operations the SIMD4 type supports.
Predefined SIMD preprocessor macros
===================================
Functionality-wise, we have a small set of core set of features that we
Functionality-wise, we have a small set of core features that we
require to be present on all platforms, while more avanced features can be
used in the code when defines like e.g. \ref GMX_SIMD_HAVE_LOADU have the
value 1.
......
......@@ -13,6 +13,7 @@ Contents:
:maxdepth: 2
download
release-notes/index
install-guide/index
user-guide/index
......
This diff is collapsed.
.\" Man page generated from reStructuredText.
.
.TH "GMX-ANADOCK" "1" "Dec 27, 2017" "2018-rc1" "GROMACS"
.TH "GMX-ANADOCK" "1" "Jan 11, 2018" "2018" "GROMACS"
.SH NAME
gmx-anadock \- Cluster structures from Autodock runs
.
......@@ -95,6 +95,6 @@ Maximum RMSD/distance for belonging to the same cluster
.sp
More information about GROMACS is available at <\fI\%http://www.gromacs.org/\fP>.
.SH COPYRIGHT
2017, GROMACS development team
2018, GROMACS development team
.\" Generated by docutils manpage writer.
.
.\" Man page generated from reStructuredText.
.
.TH "GMX-ANAEIG" "1" "Dec 27, 2017" "2018-rc1" "GROMACS"
.TH "GMX-ANAEIG" "1" "Jan 11, 2018" "2018" "GROMACS"
.SH NAME
gmx-anaeig \- Analyze eigenvectors/normal modes
.
......@@ -199,13 +199,13 @@ Other options:
.INDENT 0.0
.TP
.B \fB\-b\fP <time> (0)
First frame (ps) to read from trajectory
Time of first frame to read from trajectory (default unit ps)
.TP
.B \fB\-e\fP <time> (0)
Last frame (ps) to read from trajectory
Time of last frame to read from trajectory (default unit ps)
.TP
.B \fB\-dt\fP <time> (0)
Only use frame when t MOD dt = first time (ps)
Only use frame when t MOD dt = first time (default unit ps)
.TP
.B \fB\-tu\fP <enum> (ps)
Unit for time values: fs, ps, ns, us, ms, s
......@@ -249,6 +249,6 @@ Number of eigenvalues to skip when computing the entropy due to the quasi harmon
.sp
More information about GROMACS is available at <\fI\%http://www.gromacs.org/\fP>.
.SH COPYRIGHT
2017, GROMACS development team
2018, GROMACS development team
.\" Generated by docutils manpage writer.
.
.\" Man page generated from reStructuredText.
.
.TH "GMX-ANALYZE" "1" "Dec 27, 2017" "2018-rc1" "GROMACS"
.TH "GMX-ANALYZE" "1" "Jan 11, 2018" "2018" "GROMACS"
.SH NAME
gmx-analyze \- Analyze data sets
.
......@@ -282,6 +282,6 @@ Time where to end the exponential fit of the correlation function, \-1 is until
.sp
More information about GROMACS is available at <\fI\%http://www.gromacs.org/\fP>.
.SH COPYRIGHT
2017, GROMACS development team
2018, GROMACS development team
.\" Generated by docutils manpage writer.
.