alexxy/gromacs.git
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-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 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 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 "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 "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 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 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 "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

11 years agoFix incorrect free
Roland Schulz [Sat, 6 Oct 2012 22:59:36 +0000 (18:59 -0400)]
Fix incorrect free

introduced by 23ca07b5 / 7b6508e8

Change-Id: I713827221923270f8ba94b3ed33ee126f3ce084c

11 years agoSet return value to FALSE (0) in estimate_dt in libxdrf.c
David van der Spoel [Wed, 3 Oct 2012 15:14:33 +0000 (17:14 +0200)]
Set return value to FALSE (0) in estimate_dt in libxdrf.c

To be on the safe side the function to estimate the time
step betwen frames was fixed such that the return value
bOK is always set even if the file was missing or empty.
In addition the function is made static since it is not
used outside the file.

Change-Id: I8706a23b7a198f9d0718f1bfcb4a7770b2e6e53c

11 years agofixed backward compatibility of tpr files with dihres
Berk Hess [Mon, 1 Oct 2012 13:31:13 +0000 (15:31 +0200)]
fixed backward compatibility of tpr files with dihres

Change-Id: Ic3104db7fd401d7bf7022da1aeeea49ca8955320

11 years agoAdded two #defines that state the gromacs API + program version.
Sander Pronk [Tue, 2 Oct 2012 13:27:46 +0000 (15:27 +0200)]
Added two #defines that state the gromacs API + program version.

Added two #defines in a new CMake-generated header file version.h:
GMX_API_VERSION, and GMX_VERSION so third-party tools can provide some
backward compatibility through

  #if !defined(GMX_API_VERSION) || (GMX_API_VERSION < 40600)
    ....  <do 4.5 specific stuff>
  #elif (GMX_API_VERSION < 40700)
    ....  <do 4.6 specific stuff>
  #endif

For now (pre-5.0), version.h is included in typedefs.h, which should
already be included in most gromacs-compatible code.

The API version is a separate CMake variable that currently gets its
value from the major+minor release version.

Change-Id: I9898cf378216d63c1456ce6566a2e42774fc1a0c

11 years agoimproved the energy conservation with SETTLE
Berk Hess [Mon, 24 Sep 2012 16:51:54 +0000 (18:51 +0200)]
improved the energy conservation with SETTLE

Change-Id: Ib1c7dce6a353d80b396b86597ef842a6f4dc6d30

11 years agoadded Verlet scheme and NxN non-bonded functionality
Szilard Pall [Tue, 2 Oct 2012 10:27:00 +0000 (12:27 +0200)]
added Verlet scheme and NxN non-bonded functionality

This commit implements a new "Verlet" cutoff scheme which uses
a exact cut-offs and standard Verlet lists with an automatically
calculated buffer.

The Verlet code-path supports full multi-level heterogeneous
parallelization using MPI/thread-MPI, OpenMP multi-threading,
and GPU acceleration for the non-bonded calculations.

The non-bonded calculations with the Verlet scheme support highly
optimized CPU SIMD acceleration using SSE/AVX and GPU acceleration using
NVIDIA CUDA. The CPU kernels have been tested on and optimized for most
x86 architectures including recent ones like Intel Sandy/Ivy-Bridge and
AMD Bulldozer. The CUDA GPU kernels support hardware of compute
capability 2.0 and above and are optimized for both Fermi and Kepler
architectures.

The new search code has been added in nbnxn_search.c, new non-bonded
kernels in nbnxn_kernels and nbnxn_cuda:
- plain-C kernels: reference CPU implementation and reference GPU
  (emulation)
- x86 128- and 256-bit SIMD kernels (SSE2, SSE4.1, AVX_128, AVX_256
  intrinsics)
- CUDA (two versions: for recent and legacy toolkit/drivers)

This commit also implements some additional optimizations targeting
performance:
- SSE acceleration for dihedrals;
- automated PP/PME load balancing called "PME tuning" which optimizes
  the electrostatics cut-off to improve load balance between CPU and GPU
  or separate PP and PME processes;
- hardware detection and automated run-configuration selection.

Change-Id: I3e1a15331c174265ec086565b978ffd079df2aaa

11 years agoMerge release-4-5-patches into release-4-6
Roland Schulz [Mon, 1 Oct 2012 13:20:00 +0000 (09:20 -0400)]
Merge release-4-5-patches into release-4-6

Conflicts:
src/gmxlib/confio.c
src/gmxlib/copyrite.c
src/gmxlib/statutil.c
src/kernel/readir.c
src/kernel/repl_ex.c
src/kernel/runner.c

Change-Id: I3828c50f8166a6095ee64672cfd4380d3e4c86f6

11 years agoFix problems found by cppcheck 1.56
Roland Schulz [Sun, 30 Sep 2012 19:57:59 +0000 (15:57 -0400)]
Fix problems found by cppcheck 1.56

Doesn't fix all problems. New suppressions in Jenkins for 4.6
(so that I can upgrade without having to fix all):

  --suppress=uninitvar:src/gmxlib/md5.c --suppress=nullPointer:src/mdlib/mdebin_bar.c --suppress=nullPointer:src/gmxlib/oenv.c --suppress=nullPointer:src/gmxlib/selection/selhelp.c \
  --suppress=memleak:src/tools/levenmar.c --suppress=selfAssignment:src/gmxlib/nonbonded/nb_kernel_bluegene/* \
  --suppress=invalidPointerCast:src/gmxlib/checkpoint.c --suppress=invalidPointerCast:src/gmxlib/nonbonded/nb_kernel_sse2_single/* --suppress=invalidPointerCast:src/mdlib/fftpack.c \
  --suppress=obsoleteFunctionsusleep:*.c --suppress=obsoleteFunctionsctime_r:*.c --suppress=invalidPrintfArgType_sint:*.c invalidPrintfArgType_uint:*.c

The remaining nullPointer are false positives as far as I know.
Problems found in 4.6 (haven't run cppcheck on 4.5) but
applied to 4.5 because it is also affected.

Change-Id: I5c0b4bce52a0c9ff6ef4ba51721cdf5baff42814

11 years agoMerge "Fixed an off-by-one error in atom counting in gmx_dist." into release-4-5...
Christoph Junghans [Thu, 27 Sep 2012 20:13:40 +0000 (22:13 +0200)]
Merge "Fixed an off-by-one error in atom counting in gmx_dist." into release-4-5-patches

11 years agoMerge "Fix insolidangle selections near poles." into release-4-5-patches
Teemu Murtola [Thu, 27 Sep 2012 17:56:52 +0000 (19:56 +0200)]
Merge "Fix insolidangle selections near poles." into release-4-5-patches

11 years agoFixed an off-by-one error in atom counting in gmx_dist.
Sander Pronk [Wed, 26 Sep 2012 18:12:48 +0000 (20:12 +0200)]
Fixed an off-by-one error in atom counting in gmx_dist.

Replaced atom number in gmx_rmpbc with total number, so it can
accomodate distances between parts of molecules.

Change-Id: I6279c6ae6d61fd761c4d8d37a01c7d856742e6b8

11 years agoMerge "Fix REMD use of gmx_large_int_t for #steps variable" into release-4-5-patches
Christoph Junghans [Tue, 25 Sep 2012 01:45:03 +0000 (03:45 +0200)]
Merge "Fix REMD use of gmx_large_int_t for #steps variable" into release-4-5-patches

11 years agoAdd pdbname selection keyword.
Teemu Murtola [Mon, 24 Sep 2012 04:48:01 +0000 (07:48 +0300)]
Add pdbname selection keyword.

As a supporting change, remove trailing space from t_pdbinfo.atomnm, as
the trailing whitespace does not seem to be used anywhere.
This makes it possible to use it easily in the selection code.

Fixes #1007; fix backported from Iac36bda8.

Also includes changes from 8bddac3 to make the backport easier.

Change-Id: Iac36bda8a84d0a6c131445e7f47ad91d7209fb10

11 years agoMerge "Fixed segfault with FE code for older tpr files." into release-4-6
Kasson [Mon, 24 Sep 2012 04:55:31 +0000 (06:55 +0200)]
Merge "Fixed segfault with FE code for older tpr files." into release-4-6

11 years agoFix REMD use of gmx_large_int_t for #steps variable
Mark Abraham [Mon, 24 Sep 2012 02:06:37 +0000 (12:06 +1000)]
Fix REMD use of gmx_large_int_t for #steps variable

Change-Id: I0a72a8b838de4d018c2715f9d620a86134969206

11 years agoFixes for numeric and position selection variables.
Teemu Murtola [Tue, 18 Sep 2012 05:11:47 +0000 (08:11 +0300)]
Fixes for numeric and position selection variables.

Fixed handling of numeric and position selection variables in cases
where they were referenced multiple times.

Backported from Ifbb585ca.

Fixes #1006.

Change-Id: Ieaa479b4b870e044dc269339be57f6b33533c46e

11 years agoMade construction of parallel filenames less noisy
Mark Abraham [Mon, 17 Sep 2012 13:45:35 +0000 (23:45 +1000)]
Made construction of parallel filenames less noisy

Berk introduced this in 6b4a52fc, but it is not essential to the
function there, is not very useful for the user, and spams the stdout
with every possible filename for every simulation in (say) a
multi-simulation.

Change-Id: Ifd017c3907f6a46a4f86ac9bc06c5983a5dea946

11 years agoFix insolidangle selections near poles.
Teemu Murtola [Fri, 14 Sep 2012 17:28:29 +0000 (20:28 +0300)]
Fix insolidangle selections near poles.

- Correctly treat cases where a point is so close the one of the poles
  that it completely covers one or more bins in the zenith angle
  direction.
- Adjust update_surface_bin() to be more robust to rounding errors and
  easier to understand by simplifying the code used for wrapping angles
  to [-pi, pi] interval.  Problems were triggered here by the first
  change.
- Update comments.

Fixes #1004.

Change-Id: I2707f775793fabb64ea197bdae5fbfe68d6a8933

11 years agoMerge "Fix some memory leaks." into release-4-5-patches
Kasson [Sat, 15 Sep 2012 15:04:38 +0000 (17:04 +0200)]
Merge "Fix some memory leaks." into release-4-5-patches

11 years agoMerge "Adapted NMR related data to new pdb format." into release-4-5-patches
David van der Spoel [Sat, 15 Sep 2012 12:52:22 +0000 (14:52 +0200)]
Merge "Adapted NMR related data to new pdb format." into release-4-5-patches

11 years agoMerge "fixed recent bug with grompp check for P-R P-coupling" into release-4-5-patches
Christoph Junghans [Fri, 14 Sep 2012 15:47:05 +0000 (17:47 +0200)]
Merge "fixed recent bug with grompp check for P-R P-coupling" into release-4-5-patches

11 years agofixed recent bug with grompp check for P-R P-coupling
Berk Hess [Thu, 13 Sep 2012 16:34:12 +0000 (18:34 +0200)]
fixed recent bug with grompp check for P-R P-coupling

Fix for recent commit 57dac834

Change-Id: I5bc631d6db848c8702a65c42ae27f096804abbf7

11 years agoBackport of md-vv rerun check from c7a82654f2eb8992
Roland Schulz [Thu, 13 Sep 2012 16:41:47 +0000 (12:41 -0400)]
Backport of md-vv rerun check from c7a82654f2eb8992

Rerun in parallel with md-vv is broken. The check was added
in c7a82654f2eb8992 but also affects 4.5.

Fixes #1003

Change-Id: Ie0e200a8328b2baecd2eba9eea1453c65a668633

11 years agoFixed a deadlock in tMPI_Comm_free()
Sander Pronk [Thu, 13 Sep 2012 09:26:09 +0000 (11:26 +0200)]
Fixed a deadlock in tMPI_Comm_free()

Fixes a deadlock on overcommitted systems while calling tMPI_Comm_free(),
as first noticed by Roland.

Brings tMPI_Barrier()'s use of atomic variables and memory barriers
in line with the rest of the thread_mpi code.

Change-Id: I86613cdf3c657e907f1168feb544e534889d0557

11 years agoFix some memory leaks.
Teemu Murtola [Thu, 13 Sep 2012 04:20:42 +0000 (07:20 +0300)]
Fix some memory leaks.

Fixes part of #1004.

Change-Id: I22280999c5c3c40e8efae45461bd53bae8e2ff40

11 years agoSet valid build information if gmx_detectcpu fails
Roland Schulz [Wed, 5 Sep 2012 10:57:56 +0000 (06:57 -0400)]
Set valid build information if gmx_detectcpu fails

If gmx_detectcpu failed the error message was written
into the build info which could cause a compiler error.

Change-Id: Id7e367595c14270dc8fa91daa97ce13a4c686057

11 years agoMerge "Don't fail linking if man page building fails" into release-4-6
Mark Abraham [Wed, 12 Sep 2012 00:17:28 +0000 (02:17 +0200)]
Merge "Don't fail linking if man page building fails" into release-4-6

11 years agoupdated references
Christoph Junghans [Mon, 10 Sep 2012 23:07:21 +0000 (17:07 -0600)]
updated references

Change-Id: I74a53433b31c0d50524e0edb5865a8ef9fca1956

11 years agoMerge "Update use of CPack components and add install targets" into release-4-6
Roland Schulz [Mon, 10 Sep 2012 13:01:01 +0000 (15:01 +0200)]
Merge "Update use of CPack components and add install targets" into release-4-6

11 years agoCorrected REMD citation
Mark Abraham [Mon, 10 Sep 2012 09:52:22 +0000 (19:52 +1000)]
Corrected REMD citation

The Fukushima paper relates exclusively to MC and spin glasses.

Change-Id: I58c4eafbe41b0cbd1f3e4afac6f34458ed27eea2

11 years agoMerge "Fix VMD plugins on Windows" into release-4-6
Christoph Junghans [Fri, 7 Sep 2012 19:29:06 +0000 (21:29 +0200)]
Merge "Fix VMD plugins on Windows" into release-4-6

11 years agoMerge "Check that gmx_detectcpu runs correctly" into release-4-6
Christoph Junghans [Fri, 7 Sep 2012 19:28:31 +0000 (21:28 +0200)]
Merge "Check that gmx_detectcpu runs correctly" into release-4-6

11 years agoAdapted NMR related data to new pdb format.
David van der Spoel [Fri, 7 Sep 2012 19:13:22 +0000 (21:13 +0200)]
Adapted NMR related data to new pdb format.

Since gromacs had adopted the pdb output format to
some standard, the script to convert xplor files
with NMR restratints, such as can be downloaded from
the pdb do not work anymore. The script and accompanying
table have been updated to work with the new pdb format
and simultaneously the extra argument for a residue offset
has been removed. Now the script can be run like
xplor2gmx.pl conf.pdb < restraints.md > disre.itp

Change-Id: I7c3c8bd49b002e2bf0760f4226c913aa36d64611