alexxy/gromacs.git
11 years agoMerge origin/release-4-6 into master
Roland Schulz [Fri, 9 Nov 2012 21:18:27 +0000 (16:18 -0500)]
Merge origin/release-4-6 into master

Conflicts:
CMakeLists.txt
cmake/gmxTestRestrict.cmake (recreated)
        cmake/TestRestrict.c (recreated)
src/config.h.cmakein
src/gromacs/gmxlib/nrnb.c
src/gromacs/gmxlib/string2.c
src/gromacs/gmxlib/tpxio.c
src/gromacs/legacyheaders/string2.h
src/gromacs/libgromacs.pc.cmakein
src/kernel/CMakeLists.txt (change added to src/gromacs/CMakeLists.txt)

Deleted:
src/gromacs/gmxlib/nonbonded/nb_kernel_bluegene/*
src/gromacs/gmxlib/nonbonded/nb_kernel_c/*
src/gromacs/gmxlib/nonbonded/nb_kernel_f77_*
src/gromacs/gmxlib/nonbonded/nb_kernel_power6/*
src/gromacs/gmxlib/nonbonded/nb_kerneltype.h
src/gmxlib/nonbonded/mknb_generator/mknb_metacode.h

nstlist has been added to tpx format in 4.6 (tpx ver 82), and
now in master from version 91. Versions 83-89 are reserved for
4.6 (and will read it), while version 90 (previous master) files
are read correctly without it.

Change-Id: I9a953d213fedcc3d885ee20bff08cbdf916c86c2

11 years agoFix component for libcudart
Roland Schulz [Fri, 9 Nov 2012 19:10:31 +0000 (14:10 -0500)]
Fix component for libcudart

Change-Id: Ie63bbe5d9bab2f5f0c1231ddc03a7f51ffc86ffb

11 years agoRemoved old (now unused) bluegene kernels.
Erik Lindahl [Fri, 9 Nov 2012 10:27:09 +0000 (11:27 +0100)]
Removed old (now unused) bluegene kernels.

These will be moved to a kernel-generator based alternative
instead that provides SIMD instructions for more BG kernels.

Change-Id: Id53ad928f5d8e7720b6774b4f2a7a1a039d8f20d

11 years agoRemoved unused old kernel generator
Erik Lindahl [Fri, 9 Nov 2012 10:26:24 +0000 (11:26 +0100)]
Removed unused old kernel generator

Change-Id: I74f52245f8d720e1702ae9aaaa0fe675a69b615e

11 years agoRemoval of stale Fortran/Power6 kernels
Erik Lindahl [Fri, 9 Nov 2012 10:22:59 +0000 (11:22 +0100)]
Removal of stale Fortran/Power6 kernels

These Power6 kernels are no longer used in the code.
Based on benchmarks, we will decide whether a Fortran
version is necessary before the final 4.6 release.

Change-Id: Iab5341ce9cc99e2498b648d3a598c11503d87711

11 years agoRemoval of stale Fortran kernels
Erik Lindahl [Fri, 9 Nov 2012 10:20:27 +0000 (11:20 +0100)]
Removal of stale Fortran kernels

These Fortran kernels are no longer used in the code.
Based on benchmarks, we will decide whether to provide
new generated Fortran kernels (possibly for ia64,
Power and/or BlueGene architectures) before the final
Gromacs 4.6 release. I would prefer to keep the Fortran
detection code in CMake until we make that call.

Change-Id: Ia73fbfe968983289bba8896f8b84fdfb262d9105

11 years agoMerge "only use CPU_COUNT if it's available" into release-4-6
Kasson [Fri, 9 Nov 2012 02:42:29 +0000 (03:42 +0100)]
Merge "only use CPU_COUNT if it's available" into release-4-6

11 years agoonly use CPU_COUNT if it's available
Szilard Pall [Fri, 9 Nov 2012 01:38:37 +0000 (02:38 +0100)]
only use CPU_COUNT if it's available

The external affinity detection implemented by a6e1181 uses CPU_COUNT
from sched.h for a consistency check, but this macro is only available
with glibc 2.6 and later. Hence, a check for this macro was needed to
avoid issues with glibc <2.6

Change-Id: I6088972e9a5aabefb2b3fa3b38ac8d4ba32662f7

11 years agoalso preferentiate .lib with GMX_PREFER_STATIC_LIBS
Szilard Pall [Thu, 8 Nov 2012 19:30:18 +0000 (20:30 +0100)]
also preferentiate .lib with GMX_PREFER_STATIC_LIBS

On Mac OS X GMX_PREFER_STATIC_LIBS was enabled by caca171. On Mac OS X
.lib is also used as suffix for static archives (as well as .a), this
commits adds .lib to the preferred library suffixes.

Change-Id: I39e8df212355f6b199de4f93abd29275babdfe96

11 years agoMerge "Fixed bug in the new switch-modified interactions in C kernels" into release-4-6
Roland Schulz [Thu, 8 Nov 2012 23:08:06 +0000 (00:08 +0100)]
Merge "Fixed bug in the new switch-modified interactions in C kernels" into release-4-6

11 years agoMerge "auto-set nvcc host compiler with FindMPI detection" into release-4-6
Christoph Junghans [Thu, 8 Nov 2012 23:07:50 +0000 (00:07 +0100)]
Merge "auto-set nvcc host compiler with FindMPI detection" into release-4-6

11 years agoMerge "Relocated logic of simple-vs-GPU Ewald table generation" into release-4-6
Christoph Junghans [Thu, 8 Nov 2012 23:07:12 +0000 (00:07 +0100)]
Merge "Relocated logic of simple-vs-GPU Ewald table generation" into release-4-6

11 years agoFixed bug in the new switch-modified interactions in C kernels
Erik Lindahl [Thu, 8 Nov 2012 22:27:15 +0000 (23:27 +0100)]
Fixed bug in the new switch-modified interactions in C kernels

Fixed an error in the switch application formula, and another
table-related bug for PME interactions using the switch modifier
just introduced when only forces were calculated. This will not
have affected any other code unless you dug in the source and
tested the new switch modifiers the last 12h.

Change-Id: Ie323f45f2ce60ff1aacc2cccd9b395826f39cdf8

11 years agoInclude Gromacs files with double quotes in C++ code.
Teemu Murtola [Fri, 19 Oct 2012 09:50:01 +0000 (12:50 +0300)]
Include Gromacs files with double quotes in C++ code.

Replace #include <...> with #include "..." for Gromacs include files in
all new C++ code.  Also include headers from legacyheaders using
"gromacs/legacyheaders/...".  The C++ code should now compile without
gromacs/legacyheaders/ in the include path.

Updated the include dependency checker with checks related to this
(would have been difficult to find all these places without it).

Change-Id: Ia0fb5f9bc43790619b2dc2027a326c34bb2cf4ca

11 years agoRemove unnecessary config.h includes in C++ code.
Teemu Murtola [Wed, 17 Oct 2012 18:05:56 +0000 (21:05 +0300)]
Remove unnecessary config.h includes in C++ code.

Removed
  #include <config.h>
from C++ source files that did not actually use any defines from it, and
replaced the remaining ones with
  #include "config.h"
Also left a few of these in the trajectory analysis runner, in files
where MPI support most likely will need them.

Reduces rebuild times when changing something in config.h (or would, if
simple.h would not pull in config.h everywhere), and makes it more
obvious where actual platform or configuration option specific code is
located.

Regenerated the selection tokenizer with Flex 2.5.37, as this is what I
currently have available.

Change-Id: I393ced98160c4c5631c5ff950533c4d2aa6e2ecf

11 years agoAllow rcoulomb=rlistlong for PME with nstcalclr=1
Erik Lindahl [Thu, 8 Nov 2012 19:08:11 +0000 (20:08 +0100)]
Allow rcoulomb=rlistlong for PME with nstcalclr=1

This patch allows mdp files to set a VdW cutoff shorter than the
coulomb cutoff, even when not using potential modifiers for PME.
While this might come in handy in some cases, it is also needed for
the new kernel tests.

Change-Id: I4bef433a47a685f4f839b12b473047057608354d

11 years agoRelocated logic of simple-vs-GPU Ewald table generation
Mark Abraham [Wed, 7 Nov 2012 14:49:06 +0000 (15:49 +0100)]
Relocated logic of simple-vs-GPU Ewald table generation

I think this approach is cleaner than passing multiple arguments
down a call stack from pme_load_bal().

Change-Id: I45655312c5a9866e6fce73049e72acd70c184398

11 years agoInfrastructure for new group kernels, and new C kernels
Erik Lindahl [Sun, 28 Oct 2012 18:45:52 +0000 (14:45 -0400)]
Infrastructure for new group kernels, and new C kernels

This patch implements a new selection mechanism for nonbonded
kernels, as well as modifications of the neighborsearching to allow
long-range lists to be used every step (for rlist!=rcoul!=rvdw),
which is necessary for PP-PME load balancing. We can also evaluate
long-range interactions at steps that are arbitrary divisors of
nstlist. Kernels are now selected from text strings describing
desired options, which makes it much easier to have different
kernels for different architectures and gradually add kernels for
commonly used cases without implementing all combinations of
features. There is also a new kernel generator and flexible
preprocessor written in python. This is only executed by developers,
and the generated kernels are therefor included in the git tree
after discussions. The actual kernels are now written in plain C
with slightly more advanced preprocessor options allowing loops. The
listed (1,4) nonbonded interactions now use their own code rather
than executing a complete kernel call for each pair, which saves
a lot of overhead. The old c kernels have been adapted to continue
working, but addres kernels are disabled by this patch. Subsequent
patches will start adding back the kernels (one per architecture),
and also the addres kernels. The group kernels now support arbitrary
combinations of switch and shift for most interactions (but the
might be run in the generic kernel), and there are new kernels
specifically designed for Ewald direct space interactions as well as
force-only kernels.

Change-Id: Iab142bcc2e6d914ca127b4caa6a07b604549cb13

11 years agoObey DSO standard
Christoph Junghans [Thu, 1 Nov 2012 20:54:35 +0000 (14:54 -0600)]
Obey DSO standard

Compiling the template in recent fedora will lead to:
ld: note: 'sin@@GLIBC_2.2.5' is defined in DSO libm.so, so
try adding it to the linker command line
Hence we move -lm from Libs.private to Libs

Change-Id: I5e2c59bf62f950d06f3c708d22f6d2289babcacf

11 years agoauto-set nvcc host compiler with FindMPI detection
Szilard Pall [Fri, 2 Nov 2012 00:41:18 +0000 (01:41 +0100)]
auto-set nvcc host compiler with FindMPI detection

Distinguish between MPI build that use MPI compiler wrapper and FindMPI
as as in the latter case the CMAKE_C_COMPILER can be used safely as the
CUDA compiler's CPU backend.

Additional minor changes in cmake/gmxManageNvccConfig.cmake:
- added more detailed explanation on some strange things done in order
  to please nvcc;
- bumped icc gcc compatibility version to 4.5 with CUDA <=v4.1;
- added explanation on CUDA code generation;
- typos fixed.

Change-Id: Ia82bc63c129ac897ce88175f919b4f034e7ce665

11 years agodetect externally set CPU affinity
Szilard Pall [Wed, 31 Oct 2012 20:19:53 +0000 (21:19 +0100)]
detect externally set CPU affinity

Try to preserve externally set CPU affinity instead of silently
overriding it. If CPU affinity is set externally, e.g. by taskset or
some OpenMP library we don't check for, disable internal CPU affinity
and warn the user. This only works on Linux as it uses the sched.h CPU
set interface which is GNU feature.

Change-Id: Ie5f292fb1f29e07a3275429688c5d79398564979

11 years agoFix cmake error if compiler starts with blank line
Roland Schulz [Sat, 3 Nov 2012 01:48:36 +0000 (21:48 -0400)]
Fix cmake error if compiler starts with blank line

Change-Id: Id6579e4c7260fe9359ae43f9931662b29a17e7b9

11 years agoMerge "Clarification of mdp_opt, add nstexpand defaults & checks" into release-4-6
Roland Schulz [Tue, 6 Nov 2012 17:57:35 +0000 (18:57 +0100)]
Merge "Clarification of mdp_opt, add nstexpand defaults & checks" into release-4-6

11 years agoMerge "Add option to install libcudart" into release-4-6
Berk Hess [Tue, 6 Nov 2012 16:30:35 +0000 (17:30 +0100)]
Merge "Add option to install libcudart" into release-4-6

11 years agoClarification of mdp_opt, add nstexpand defaults & checks
Michael Shirts [Sat, 27 Oct 2012 03:18:20 +0000 (23:18 -0400)]
Clarification of mdp_opt, add nstexpand defaults & checks

Change-Id: If96973674ba9618256a6454d8f12a3d982ce00e2

11 years agoMerge "don't execute any mpi_info/mpiname in the path" into release-4-6
Berk Hess [Tue, 6 Nov 2012 16:22:16 +0000 (17:22 +0100)]
Merge "don't execute any mpi_info/mpiname in the path" into release-4-6

11 years agoMerge "updated several things related with OpenMP thread count" into release-4-6
Berk Hess [Mon, 5 Nov 2012 21:38:58 +0000 (22:38 +0100)]
Merge "updated several things related with OpenMP thread count" into release-4-6

11 years agoAdd option to install libcudart
Roland Schulz [Sat, 3 Nov 2012 01:50:08 +0000 (21:50 -0400)]
Add option to install libcudart

New option INSTALL_CUDART_LIB installs libcudart and adds it to cpack archive.
Would be good to enable option by default for cpack but I can't find a
way to do so.

Change-Id: I1ce7fe84a9c2c2d9ef0ee0962b871db9fa065607

11 years agoupdated several things related with OpenMP thread count
Berk Hess [Tue, 9 Oct 2012 15:08:42 +0000 (17:08 +0200)]
updated several things related with OpenMP thread count

Removed a gmx_fatal preventing oversubscribing hardware with OpenMP threads.
Proper checks for avoiding partial HT and inconvenient thread count with tMPI.
Automatic switch to pure OpenMP parallelization with <= 4 threads
or <= 12 on Nehalem/Westmere or <= 16 on >=Sandy Bridge.

Change-Id: I5f0fa7c8e5a23cb66833ec9facdbc6d197f82836

11 years agoMerge release-4-6 into master
Roland Schulz [Sat, 3 Nov 2012 19:40:48 +0000 (15:40 -0400)]
Merge release-4-6 into master

Conflicts:
CMakeLists.txt: trivial
COPYING-OTHER: moved to COPYING

Added check for ICC bug to gmxTestCXX11.cmake to not activate
HAVE_CXX11 with affected ICC versions.

Change-Id: I8b9db5895c4b5a47b4936771c941cd600f003a98

11 years agoMerge release-4-5-patches into release-4-6
Roland Schulz [Sat, 3 Nov 2012 19:31:12 +0000 (15:31 -0400)]
Merge release-4-5-patches into release-4-6

Conflicts:
cmake/gmxTestLargeFiles.cmake

Change-Id: I104448f48be0c7b3cd5daa1b5cede3cb9d7f672d

11 years agoReworked version of cmake FFTW detection
Christoph Junghans [Wed, 17 Oct 2012 09:57:32 +0000 (11:57 +0200)]
Reworked version of cmake FFTW detection

Change-Id: I6d83293de760986fc1e1ebe4669520fbd499d7fc

11 years agoMerge all License/COPYING files into one and install it
Roland Schulz [Fri, 19 Oct 2012 00:28:16 +0000 (20:28 -0400)]
Merge all License/COPYING files into one and install it

Installing is important for cpack binary packages (e.g. TGZ).

Also added Copyright of thread_mpi, blas, and lapack which
were missing.

Fixes #952

Change-Id: I06c54a08a493273f8e91333c4601f4fef945ad51

11 years agodon't execute any mpi_info/mpiname in the path
Szilard Pall [Fri, 2 Nov 2012 02:27:52 +0000 (03:27 +0100)]
don't execute any mpi_info/mpiname in the path

During MPI setup, the gmxManageMPI.cmake script uses mpi_info/mpiname to
check for and warn about potentially problematic versions. However,
executing these binatries without any path can lead to false positive
warnings e.g. in case if the MPI installation in used does not provide
mpi_info, but another MPI installation's mpi_info is in the path
(which is the case with MacPorts OpenMPI + Xcode's MPI).

To avoid these false positives we don't execute any other
mpi_info/mpiname but the ones found at the same path where the MPI
compiler wrapper resides (if any).

Change-Id: Icd2091dd952f4a140b92045f95a8d0187c1a354f

11 years agoFix DEB/RPM cpack generation
Roland Schulz [Sun, 21 Oct 2012 22:03:40 +0000 (18:03 -0400)]
Fix DEB/RPM cpack generation

Change-Id: I4df6bf81d91f2027ee2b1849edafbaac717f3704

11 years agoActually disable GPU when compiling in double
Christoph Junghans [Thu, 1 Nov 2012 03:40:51 +0000 (21:40 -0600)]
Actually disable GPU when compiling in double

Change-Id: Iefb877f066c5f1b923bb7771323fedff9c1b85dc

11 years agofix internal/external OpenMP thread affinity clash
Szilard Pall [Mon, 24 Sep 2012 21:54:50 +0000 (23:54 +0200)]
fix internal/external OpenMP thread affinity clash

Thread affinity set by the OpenMP library, either automatically or
requested by the user through environment variables, can conflict with
the mdrun internal affinity setting.
To avoid performance degradation, as Intel OpenMP has affinity setting
on by default, we will explicitly disable it unless the user manually
set OpenMP affinity through one of the KMP_AFFINITY or GOMP_CPU_AFFINITY
environment variables. If any of these variables is set, we honor the
externally set affinity and turn off the internal one.

Change-Id: I78c6347154d6f11695ee04243db17bbb2e5cb0a7

11 years agoFix that no OpenMP flags are used with GMX_OPENMP=no
Roland Schulz [Mon, 8 Oct 2012 21:14:47 +0000 (17:14 -0400)]
Fix that no OpenMP flags are used with GMX_OPENMP=no

If OpenMP flags were set because find_package(OpenMP) could
find something but GMX_OPENMP was false (either set by user
or because find_package(OpenMP) was only partial succesful)
then compiler or linker flags was set which were not needed.
This could cause undefined OpenMP linker errors with
GMX_OPENMP=no.

Fixes part of #1021

Change-Id: I9b66a8c89a84374081886cd2eeb46c87664c1e39

11 years agoSet HAVE_FSEEKO consistently in one place
Roland Schulz [Sat, 27 Oct 2012 08:08:46 +0000 (04:08 -0400)]
Set HAVE_FSEEKO consistently in one place

HAVE_FSEEKO was set in two places and the definition wasn't
consistent. Now only the one in gmxTestLargeFiles is used.
HAVE_FSEEKO is only used if it fully works and 64bit fseek is
available.

Change-Id: I5c8f837e414f1ddeab0de8148d5a9c91047116f8

11 years agoClean up git version generation.
Teemu Murtola [Mon, 22 Oct 2012 04:41:40 +0000 (07:41 +0300)]
Clean up git version generation.

- Rename USE_VERSION_H to GMX_GIT_VERSION_INFO. This was particularly
  confusing now that there was a separate version.h file for API version
  numbers.
- Move the version.h/version.c files to src/gromacs/utility/ and rename
  them to gitversion.*, again to avoid confusion with the API version.h
  header.
- Remove unnecessary suffix stripping from gmxGenerateVersionInfo.cmake:
  when this functionality was added, the version string was of the form
  X.Y-dev-YYYYMMDD, and the script was stripping the date off. Now that
  the date is gone, it is clearer to just append the generated version
  with no extra logic.
- Change the logic for handling GMX_GIT_VERSION_INFO in CMake such that
  user-provided cache values are never changed under the hood.

Change-Id: I372a4e2fdf11b1799dd22997bc6adb4faf3db93d

11 years agoMerge "Fix large file support" into release-4-5-patches
Christoph Junghans [Sat, 27 Oct 2012 02:31:38 +0000 (04:31 +0200)]
Merge "Fix large file support" into release-4-5-patches

11 years agoFix usage of CMAKE_REQUIRED_*
Roland Schulz [Fri, 19 Oct 2012 02:14:20 +0000 (22:14 -0400)]
Fix usage of CMAKE_REQUIRED_*

Always reset all variables.
Only require libm if it is avaiable (only on Unix)

Also prefer usage of _finite. ICC on Windows gives warnings
for isfinite (we don't inlude mathimf.h).

Fixes #998

Change-Id: Ib7c064aaf6d26d2ab96f5e88345091a2eb096998

11 years agoMerge "fixed incorrect PME load balancing limitation" into release-4-6
Roland Schulz [Fri, 26 Oct 2012 19:13:46 +0000 (21:13 +0200)]
Merge "fixed incorrect PME load balancing limitation" into release-4-6

11 years agoMerge "enable GMX_PREFER_STATIC_LIBS CMake option on Mac OS X" into release-4-6
Christoph Junghans [Fri, 26 Oct 2012 18:52:14 +0000 (20:52 +0200)]
Merge "enable GMX_PREFER_STATIC_LIBS CMake option on Mac OS X" into release-4-6

11 years agoMerge "fix false positive gcc 4.7 warning in libxdrf" into release-4-6
Christoph Junghans [Fri, 26 Oct 2012 18:50:39 +0000 (20:50 +0200)]
Merge "fix false positive gcc 4.7 warning in libxdrf" into release-4-6

11 years agoMerge "Fixed Pulp Fiction quote" into release-4-5-patches
David van der Spoel [Fri, 26 Oct 2012 16:48:28 +0000 (18:48 +0200)]
Merge "Fixed Pulp Fiction quote" into release-4-5-patches

11 years agofixed incorrect PME load balancing limitation
Berk Hess [Fri, 26 Oct 2012 16:24:18 +0000 (18:24 +0200)]
fixed incorrect PME load balancing limitation

PME load balancing would not work with -dlb=auto but DD-DLB not active (yet).
Also fixed incorrect cut-off in PME DLB limited message.

Change-Id: I717981743403de36c747108e0c3e907d6213be10

11 years agoMerge "set the default for nstdhdl to 100" into release-4-6
Roland Schulz [Fri, 26 Oct 2012 14:55:26 +0000 (16:55 +0200)]
Merge "set the default for nstdhdl to 100" into release-4-6

11 years agoset the default for nstdhdl to 100
Berk Hess [Fri, 26 Oct 2012 13:03:19 +0000 (15:03 +0200)]
set the default for nstdhdl to 100

The default for nstdhdl was 10, which was not a multiple of the default
for nstcalcenergy (100). This caused a warning in grompp. Also 100 should
still result in correlated samples.
Removed nstfep from mdp_opt.html.

Change-Id: If9969f27b9dafb71a7c4a81b929ff3f9455f4cf8

11 years agofixed incorrect group energies with nbnxn CPU kernels
Berk Hess [Thu, 25 Oct 2012 11:35:18 +0000 (13:35 +0200)]
fixed incorrect group energies with nbnxn CPU kernels

Fixed two energy group indexing errors in the nbnxn CPU kernels.
The code has now been generalized and we avoid code duplication.

Change-Id: I524d0d2c86b54a92ae124f2c067ccef3daac1515

11 years agoMerge "fix CUDA non-bonded kernel pointer assignment" into release-4-6
Roland Schulz [Thu, 25 Oct 2012 18:40:27 +0000 (20:40 +0200)]
Merge "fix CUDA non-bonded kernel pointer assignment" into release-4-6

11 years agoMerge remote-tracking branch 'origin/release-4-6' into HEAD
Roland Schulz [Thu, 25 Oct 2012 18:32:50 +0000 (14:32 -0400)]
Merge remote-tracking branch 'origin/release-4-6' into HEAD

Conflicts:
include/nbnxn_search.h
src/gromacs/legacyheaders/nbnxn_search.h
src/mdlib/nbnxn_search.h
Moved the new src/mdlib/nbnxn_search.h to
     src/gromacs/mdlib/nbnxn_search.h

Conflicts (all trival):
src/gromacs/gmxlib/statutil.cpp
src/programs/mdrun/genalg.c
src/tools/gmx_h2order.c
src/tools/gmx_sorient.c

Moved src/mdlib/nbnxn_atomdata.* src/mdlib/nbnxn_internal.h
    to src/gromacs/mdlib

Change-Id: Ic0026cb8e9c2b12fcd5293add562e906193bf6ab

11 years agofix false positive gcc 4.7 warning in libxdrf
Szilárd Páll [Thu, 25 Oct 2012 12:06:00 +0000 (14:06 +0200)]
fix false positive gcc 4.7 warning in libxdrf

Change-Id: Ied3b07dca011ca142455c328cba25b0b01eadb8c

11 years agoenable GMX_PREFER_STATIC_LIBS CMake option on Mac OS X
Szilárd Páll [Wed, 24 Oct 2012 00:44:10 +0000 (02:44 +0200)]
enable GMX_PREFER_STATIC_LIBS CMake option on Mac OS X

Change-Id: Ifa01573e514bc1a167095023e26c77829eda7b42

11 years agofixed bondfree.c thread safety with free energy
Berk Hess [Fri, 12 Oct 2012 12:54:22 +0000 (14:54 +0200)]
fixed bondfree.c thread safety with free energy

Change-Id: Ib9e60f1282fab98b6a930d19bd45fe21049964ce

11 years agoMerge "moved part of nbnxn_search.c to nbnxn_atomdata.c" into release-4-6
Roland Schulz [Tue, 23 Oct 2012 20:17:20 +0000 (22:17 +0200)]
Merge "moved part of nbnxn_search.c to nbnxn_atomdata.c" into release-4-6

11 years agoMerge "fixed incorrect LJ energy with GPU and PME load balancing" into release-4-6
Roland Schulz [Tue, 23 Oct 2012 17:43:46 +0000 (19:43 +0200)]
Merge "fixed incorrect LJ energy with GPU and PME load balancing" into release-4-6

11 years agomoved part of nbnxn_search.c to nbnxn_atomdata.c
Berk Hess [Thu, 11 Oct 2012 16:14:05 +0000 (18:14 +0200)]
moved part of nbnxn_search.c to nbnxn_atomdata.c

Change-Id: I257c4e9256373b6ddad80a99b31ce1b6789c928c

11 years agoReplace sprintf with snprintf to make safe
Roland Schulz [Tue, 23 Oct 2012 07:23:24 +0000 (03:23 -0400)]
Replace sprintf with snprintf to make safe

The sprintf could cause buffer overflows for large numbers.

Change-Id: I3cc3554710e199c9f961bd68b444836863a9469f

11 years agofixed incorrect LJ energy with GPU and PME load balancing
Berk Hess [Mon, 22 Oct 2012 14:55:26 +0000 (16:55 +0200)]
fixed incorrect LJ energy with GPU and PME load balancing

Change-Id: Ied66016e0596aa8fb37f8ba2bc0cf5554d00f0ba

11 years agoMerge "added OpenMP parallelization for virtual sites" into release-4-6
Roland Schulz [Tue, 23 Oct 2012 03:08:08 +0000 (05:08 +0200)]
Merge "added OpenMP parallelization for virtual sites" into release-4-6

11 years agoadded OpenMP parallelization for virtual sites
Berk Hess [Thu, 18 Oct 2012 16:44:25 +0000 (18:44 +0200)]
added OpenMP parallelization for virtual sites

Change-Id: I67fd26a815358d4e6f08fea486a7e0932b629d23

11 years agofix CUDA non-bonded kernel pointer assignment
Szilard Pall [Mon, 22 Oct 2012 15:19:01 +0000 (17:19 +0200)]
fix CUDA non-bonded kernel pointer assignment

The plain cut-off kernel pointer was incorrectly set which caused kernel
launch error.

Change-Id: Id4d71c4e04e8775134ee95e5ebb8c79cda7e8bf8

11 years agoFix minor OpenMP issue for md-vv update
Roland Schulz [Sat, 13 Oct 2012 00:23:04 +0000 (20:23 -0400)]
Fix minor OpenMP issue for md-vv update

Conflicting writes to alpha. But because alpha is anyhow the same
value for all threads didn't cause a problem.

Change-Id: Icefbfa4454c38300629344057f1b5feb0ca8b01d

11 years agoFix clang 3.2 unintialized variable warnings
Roland Schulz [Fri, 19 Oct 2012 14:48:43 +0000 (10:48 -0400)]
Fix clang 3.2 unintialized variable warnings

All but gmx_sorient were false positives

Change-Id: I3a38b44ad377a929a469a6c6858c81bd77372cb1

11 years agoFixed Bug #593 about memory hole in trjcat.
David van der Spoel [Sun, 21 Oct 2012 10:06:32 +0000 (12:06 +0200)]
Fixed Bug #593 about memory hole in trjcat.

Fixed by explicitly freeing memory for each frame. Tested to make
sure it does not crash.

Change-Id: Ic0e91b828a1e5a23f38690b4753092a31e6c4db4

11 years agoMerge "[tools] Allow g_dist to use default index group" into release-4-6
Roland Schulz [Fri, 19 Oct 2012 23:22:41 +0000 (01:22 +0200)]
Merge "[tools] Allow g_dist to use default index group" into release-4-6

11 years agoMerge "renamed constraint variables rmdr to vir_r_m_dr" into release-4-6
Kasson [Fri, 19 Oct 2012 23:13:05 +0000 (01:13 +0200)]
Merge "renamed constraint variables rmdr to vir_r_m_dr" into release-4-6

11 years agoFix large file support
Roland Schulz [Fri, 19 Oct 2012 21:35:35 +0000 (17:35 -0400)]
Fix large file support

Variables containing flags need to be cached. Before config.h
was written correct on first run but rerunning cmake caused
flags to be ommited. Also fixed test program.

Change-Id: Id948c54766547a85ac84751762de3afba21ea576

11 years agoMerge branch 'release-4-6'
Roland Schulz [Fri, 19 Oct 2012 18:50:56 +0000 (14:50 -0400)]
Merge branch 'release-4-6'

Conflicts:
src/kernel/CMakeLists.txt (applied to programs/mdrun)
src/programs/mdrun/pme_switch.c (renamed)
src/programs/mdrun/pme_switch.h (renamed)

Change-Id: I0914b274baed69a25736dca50b57d1b8658d4ca8

11 years agoMerge "renamed pme_switch... to pme_loadbal..." into release-4-6
Roland Schulz [Fri, 19 Oct 2012 18:26:28 +0000 (20:26 +0200)]
Merge "renamed pme_switch... to pme_loadbal..." into release-4-6

11 years agoMerge "Added thread affinity API to thread_mpi." into release-4-6
Roland Schulz [Thu, 18 Oct 2012 23:44:34 +0000 (01:44 +0200)]
Merge "Added thread affinity API to thread_mpi." into release-4-6

11 years agorenamed constraint variables rmdr to vir_r_m_dr
Berk Hess [Thu, 18 Oct 2012 10:12:22 +0000 (12:12 +0200)]
renamed constraint variables rmdr to vir_r_m_dr

Change-Id: Ie332cfdcae3f5b0c0067d8c9a337367395f6065f

11 years agoadded OpenMP parallelization to LINCS projection
Berk Hess [Fri, 12 Oct 2012 14:07:15 +0000 (16:07 +0200)]
added OpenMP parallelization to LINCS projection

Also fixed thread-safety of the LINCS warnings.

Change-Id: I77ded70e745f1e1a75ac1c2d54a34ab56c019770

11 years ago[tools] Allow g_dist to use default index group
Alexey Shvetsov [Thu, 18 Oct 2012 09:27:47 +0000 (13:27 +0400)]
[tools] Allow g_dist to use default index group

This should fix #1002

Change-Id: I93db5821bd2eb333f89c21d84f8f52eabc2a7dc3
Signed-off-by: Alexey Shvetsov <alexxy@omrb.pnpi.spb.ru>
11 years agoFixed Pulp Fiction quote
Roland Schulz [Wed, 17 Oct 2012 19:56:11 +0000 (15:56 -0400)]
Fixed Pulp Fiction quote

Fixes 1011

Change-Id: I40bfdca8906505a8a619c6ba2db924a50b830af5

11 years agorenamed pme_switch... to pme_loadbal...
Berk Hess [Tue, 16 Oct 2012 14:30:42 +0000 (16:30 +0200)]
renamed pme_switch... to pme_loadbal...

Also added and updated the mdrun PME load balacing reporting.

Change-Id: Ifa633ee9e1fc6a22f7792bbb6af7ad7da6192d14

11 years agoMerge branch 'release-4-6'
Roland Schulz [Wed, 17 Oct 2012 03:34:06 +0000 (23:34 -0400)]
Merge branch 'release-4-6'

Conflicts:
src/gromacs/mdlib/pme.c (trivial)

This merge reverts
1) Fixed install-xxx functionality broken in 9628e27d
   b64eea399c18e345204c4aee79984cba2819dbd8
   Because 9628e27d was already reverted and we need to do this
   seperate in master
2) Make Gromacs compile without C++ compiler
   cb93f945a96caad2b9041b6b64d5c5bd872dc78f
   Doesn't apply to master

Change-Id: I12f455ee654f0fa9e45e27fe056b98399ff4584b

11 years agoMerge branch 'release-4-6', adds the nbnxn functionality
Roland Schulz [Wed, 17 Oct 2012 03:21:42 +0000 (23:21 -0400)]
Merge branch 'release-4-6', adds the nbnxn functionality

Change-Id: I0ca088dcf9140d69fd9d5f935ed9e370fc1757ae

11 years agoMerge "Make Gromacs compile without C++ compiler" into release-4-6
Kasson [Wed, 17 Oct 2012 01:32:43 +0000 (03:32 +0200)]
Merge "Make Gromacs compile without C++ compiler" into release-4-6

11 years agoMerge "made pair-search with GPU 20% faster" into release-4-6
Roland Schulz [Tue, 16 Oct 2012 17:30:39 +0000 (19:30 +0200)]
Merge "made pair-search with GPU 20% faster" into release-4-6

11 years agoMerge "Script for analyzing include dependencies."
Roland Schulz [Tue, 16 Oct 2012 15:06:33 +0000 (17:06 +0200)]
Merge "Script for analyzing include dependencies."

11 years agoMade g_tune_pme read (ns/day) from 4.6 md.log output files
Carsten Kutzner [Tue, 16 Oct 2012 13:32:17 +0000 (15:32 +0200)]
Made g_tune_pme read (ns/day) from 4.6 md.log output files

Change-Id: I8a3f804ac71cd13b3e060aa7b42032fbbbd93dcd

11 years agoRemoved obsolete hint in error message.
Carsten Kutzner [Tue, 16 Oct 2012 11:11:37 +0000 (13:11 +0200)]
Removed obsolete hint in error message.

GMX_RESET_COUNTER was removed from the code a long time ago.

Change-Id: I2fb54995f1a6e211995ef0474bcdb36f5018550d

11 years agomade pair-search with GPU 20% faster
Berk Hess [Tue, 16 Oct 2012 08:42:10 +0000 (10:42 +0200)]
made pair-search with GPU 20% faster

Also replaced more numbers by symbolic constants.

Change-Id: Ida0ef5c46b3fd1d6b4d8006598194e19a943b660

11 years agoScript for analyzing include dependencies.
Teemu Murtola [Sat, 13 Oct 2012 19:10:04 +0000 (22:10 +0300)]
Script for analyzing include dependencies.

Add a Python script plus some CMake code to run it that analyzes include
file dependencies.  The script can also generate different kinds of
include dependency graphs (this implementation dates from a time when
some versions of Doxygen didn't do this properly, and the script still
has some features that Doxygen doesn't have).  Some parts of the script
contain hard-coded stuff related to the Gromacs source tree layout or
the Doxygen guidelines, but the core dependency analysis should be quite
general.

There is a lot to improve in the script (in addition to missing
features, docstrings and comments are sparse, and some parts could be
better structured), but it is already usable.

Fix a few issues that produce multiple warnings from the script, and one
issue found by the script (in helpformat.h).

Related to #638 and #907.

Change-Id: I22a6d6c0818f21c828f1e7d6beb1fdada39273d2

11 years agoClean up g_ana angle implementation.
Teemu Murtola [Thu, 27 Sep 2012 19:13:18 +0000 (22:13 +0300)]
Clean up g_ana angle implementation.

- Remove -split1 and -split2 options, as the 'merge' selection keyword
  can be used for the same effect.
- Remove -multi option, as the same can be interpreted from the number
  of input selections (not currently supported, though).
- Change output options, such that averages and individual angles are
  written to different files, allowing the removal of -all option.
- Add tests.
- Add some TODO comments for things still missing.

Supporting changes:
- Add an analysis data module that computes per-frame averages and tests
  for the module.
- Also add tests with multipoint data for the average modules and fix an
  issue in mock_datamodule.cpp (now this is somewhat unrelated, but some
  intermediate version of this change was more tightly coupled to
  multipoint data).

Change-Id: I0c62c2c54a0b3a0ff269ea0c2d6150c31479f3eb

11 years agoExtract Doxygen docs for anonymous namespaces.
Teemu Murtola [Mon, 15 Oct 2012 07:43:09 +0000 (10:43 +0300)]
Extract Doxygen docs for anonymous namespaces.

With this, no Doxygen documentation in the source should get ignored.

Also added documentation for anonymous namespace members that were
causing warnings.

Related to #638.

Change-Id: I31af809272123fbc7f77ea9d3b186eddb07935bb

11 years agoFix most warnings with Doxygen 1.8.1.1.
Teemu Murtola [Sun, 14 Oct 2012 06:43:05 +0000 (09:43 +0300)]
Fix most warnings with Doxygen 1.8.1.1.

Some of these seem bugs in Doxygen, but these changes shouldn't hurt.

Change-Id: Ifcb58df2f33e3fe0b6e4e51c02fbefe11162c9ae

11 years agoRemove explicit end-of-array markers from tests.
Teemu Murtola [Mon, 15 Oct 2012 07:45:06 +0000 (10:45 +0300)]
Remove explicit end-of-array markers from tests.

Instead of using NULL- or otherwise terminated arrays as input to test
functions, use a template wrapper for the functions that take these
arrays to allow the compiler to pass the declared size of the array.
This is safer, as with this approach it is not possible to forget the
terminator.

Change-Id: I7cdb91c055d9026dabebcd9adc657a66fb9a99c3

11 years agoAdded thread affinity API to thread_mpi.
Sander Pronk [Fri, 12 Oct 2012 16:29:54 +0000 (18:29 +0200)]
Added thread affinity API to thread_mpi.

thread_mpi can now set thread affinity on Linux and Windows. Currently
that is limited to setting the affinity of any thread (including those
not started with thread_mpi) to any single core. The OS's core numbering
is maintained.

Change-Id: If0b7aa443f7da206b320a2bde5bd771a441fb2cb

11 years agoMerge "Fixing issues with replica exchange" into release-4-6
David van der Spoel [Sat, 13 Oct 2012 19:31:04 +0000 (21:31 +0200)]
Merge "Fixing issues with replica exchange" into release-4-6

11 years agoFixed install-xxx functionality broken in 9628e27d
Mark Abraham [Sat, 13 Oct 2012 00:00:48 +0000 (11:00 +1100)]
Fixed install-xxx functionality broken in 9628e27d

Only the CPack component definitions needed fixing, inasmuch as they
are what is used for the "make install-xxx" functionality. I separated
"libraries" component into "libraries", "libraries-gmxpreprocess" and
"libraries-gmxana" for, respectively, the core gmx/md/etc. libraries,
and those particular to src/kernel programs and src/tools programs.
Now "make install-xxx" correctly compiles, links and installs only the
required dependencies, and the wrong dependencies introduced in the
above commit are removed.

Fixes #1015

Change-Id: I3e848e69d126305943370d1f294e44d5389e1934

11 years agoMerge "[tools] g_sans - add trajectory avereging"
David van der Spoel [Fri, 12 Oct 2012 19:01:54 +0000 (21:01 +0200)]
Merge "[tools] g_sans - add trajectory avereging"

11 years agoMerge "Fix illegal barrier in worksharing" into release-4-6
Berk Hess [Fri, 12 Oct 2012 12:46:18 +0000 (14:46 +0200)]
Merge "Fix illegal barrier in worksharing" into release-4-6

11 years agoFix illegal barrier in worksharing
Roland Schulz [Fri, 12 Oct 2012 04:54:02 +0000 (00:54 -0400)]
Fix illegal barrier in worksharing

According to section 2.10 of the OpenMP standard:
  A barrier region may not be closely nested inside a worksharing
  ... region.

Replaced parallel-for with parallel plus gmx_omp_get_thread_num.

Fixes #937

Change-Id: Ief31f2097fb084d405e5981913cce2c2bfee868c

11 years agoFixing issues with replica exchange
Michael Shirts [Tue, 11 Sep 2012 03:11:49 +0000 (23:11 -0400)]
Fixing issues with replica exchange

Avoids unnecessary communication, clarifies variable names, restores
exchange statistics removed in c7a82654, fixes memory leaks, and some
other minor house-keeping noticed by Mark Abraham.

Fixes #1001

Change-Id: I8a9032e5946117d87f672e16cba525c5ed9720f9

11 years agofixed header for 3rd party apps
Christoph Junghans [Wed, 10 Oct 2012 15:41:58 +0000 (17:41 +0200)]
fixed header for 3rd party apps

Change-Id: Iaeb900134bfd5cdba2584c256ba04e0208f9ee84

11 years agoMake Gromacs compile without C++ compiler
Roland Schulz [Mon, 8 Oct 2012 23:05:48 +0000 (19:05 -0400)]
Make Gromacs compile without C++ compiler

Fixes that OpenMP is enabled if C compiler supports OpenMP
but C++ compiler does not.

Partially fixes #1021

Change-Id: I4bb109801ee57aac4826881022c34240768a841e

11 years agomade non-bonded potential shifts mdp options
Berk Hess [Mon, 8 Oct 2012 20:38:43 +0000 (22:38 +0200)]
made non-bonded potential shifts mdp options

Change-Id: I03e500c28ebd677917571cca7a7551523f9eb3af