alexxy/gromacs.git
11 years agoMerge "Fixed GMXRC so we are not polluting standard shell variables" into release-4-6
Roland Schulz [Thu, 3 Jan 2013 18:20:29 +0000 (19:20 +0100)]
Merge "Fixed GMXRC so we are not polluting standard shell variables" into release-4-6

11 years agoMerge "Remove non-functional PowerPC invsqrt." into release-4-6
Christoph Junghans [Thu, 3 Jan 2013 02:53:53 +0000 (03:53 +0100)]
Merge "Remove non-functional PowerPC invsqrt." into release-4-6

11 years agoFixed GMXRC so we are not polluting standard shell variables
Erik Lindahl [Sun, 30 Dec 2012 11:28:52 +0000 (12:28 +0100)]
Fixed GMXRC so we are not polluting standard shell variables

csh/tcsh is now detected by looking for the lower-case $shell
variable, which seems to work on all recent platforms, instead
of using the 'set' command (which affected $* and $@ in bash).
Fixes #1044.

Change-Id: I852d075c80e2bf8f81a02932432dd31b3bab7f09

11 years agoMerge "Thread-MPI fixes for i386 llvm & simplification of atomics" into release-4-6
Erik Lindahl [Sun, 30 Dec 2012 18:29:53 +0000 (19:29 +0100)]
Merge "Thread-MPI fixes for i386 llvm & simplification of atomics" into release-4-6

11 years agoRemove non-functional PowerPC invsqrt.
Teemu Murtola [Sun, 30 Dec 2012 06:42:32 +0000 (08:42 +0200)]
Remove non-functional PowerPC invsqrt.

Also remove remaining Power6-related CMake code now that there is no
Power6 CPU acceleration option.

Fixes #947, see that issue for justification.

Change-Id: I6466f3ca7297f96757097119ee7b10e7e467bfe7

11 years agocmake: add option to install libmd as libgmxmd
Christoph Junghans [Fri, 28 Dec 2012 22:11:31 +0000 (15:11 -0700)]
cmake: add option to install libmd as libgmxmd

Change-Id: I984494e843a344f50ecec8789e4e535ed6ce3c61

11 years agoThread-MPI fixes for i386 llvm & simplification of atomics
Sander Pronk [Sat, 29 Dec 2012 17:29:23 +0000 (18:29 +0100)]
Thread-MPI fixes for i386 llvm & simplification of atomics

llvm on 32-bit x86 now uses the gcc-style intrinsics rather than
inline assembly; this fixes http://redmine.gromacs.org/issues/1098

Also, atomics use in thread-MPI is simplified to use only add-return
rather than fetch-add and add-return.

Change-Id: Id7edba926957b0d708e59ffd42db7c2b38edbdfc
Fixes: 1098

11 years agoNew beta release: 4.6-beta3
Mark Abraham [Wed, 19 Dec 2012 21:16:21 +0000 (22:16 +0100)]
New beta release: 4.6-beta3

Change-Id: Ibee5545fa0c45cf97486ca25ff7449b9ee0c0d3a

11 years agocmake: mark FFTW_HAVE_{SIMD,AVX} as advanced
Christoph Junghans [Mon, 17 Dec 2012 18:47:39 +0000 (11:47 -0700)]
cmake: mark FFTW_HAVE_{SIMD,AVX} as advanced

Change-Id: Id31f15e4a92722daa3b59fbbc909b8ac6ddc38ce

11 years agoAdd missing visibility exports
Roland Schulz [Fri, 21 Dec 2012 04:26:01 +0000 (23:26 -0500)]
Add missing visibility exports

For template and for double

Also: fix define symbol for gpu libs
      declare of MPI_Wtime

Change-Id: Iba1a0c6e5ec74739c00b20d43a577813228e3f2d

11 years agoMerge "Remove non-functional compiler override for MacOSX." into release-4-6
Christoph Junghans [Fri, 21 Dec 2012 17:45:29 +0000 (18:45 +0100)]
Merge "Remove non-functional compiler override for MacOSX." into release-4-6

11 years agoFixed gmx_cpuid not working on non-x86
Erik Lindahl [Thu, 20 Dec 2012 14:41:19 +0000 (15:41 +0100)]
Fixed gmx_cpuid not working on non-x86

Added x86-specific #ifdefs around calls to x86-specific routines.
The cpuid calls should now correctly return 'unknown' for everything
on other platforms. Fixes #1075.

Change-Id: Id0dfcb2fd944ea37b176efb9978ccedfc00e06e9

11 years agoRemove non-functional compiler override for MacOSX.
Teemu Murtola [Fri, 21 Dec 2012 05:38:41 +0000 (07:38 +0200)]
Remove non-functional compiler override for MacOSX.

As discussed in #1021, at least with CMake 2.8.9 this does not work, so
it only causes confusion.  A better solution can be implemented if
identified in #1021 discussion.

Related to #1021.

Change-Id: Iec704dcae65cd7a213cf31861a262ac0b2763474

11 years agofix incorrect gmx_fatal argument order
Szilard Pall [Thu, 20 Dec 2012 23:36:31 +0000 (00:36 +0100)]
fix incorrect gmx_fatal argument order

The format specifiers did not match the argument order.

Change-Id: Ib58892f4b0e09d7c3d3442a88f0bda98ea4b54b9

11 years agoMerge "cmake: added option to disable quotes" into release-4-6
Erik Lindahl [Thu, 20 Dec 2012 22:29:27 +0000 (23:29 +0100)]
Merge "cmake: added option to disable quotes" into release-4-6

11 years agoMerge "Small fix for g_tune_pme" into release-4-6
Erik Lindahl [Thu, 20 Dec 2012 22:28:37 +0000 (23:28 +0100)]
Merge "Small fix for g_tune_pme" into release-4-6

11 years agoMerge "Fixes for andersen temperature control" into release-4-6
Erik Lindahl [Thu, 20 Dec 2012 22:26:49 +0000 (23:26 +0100)]
Merge "Fixes for andersen temperature control" into release-4-6

11 years agoMerge "Fixes for expanded ensemble and HREPEX" into release-4-6
Erik Lindahl [Thu, 20 Dec 2012 22:25:59 +0000 (23:25 +0100)]
Merge "Fixes for expanded ensemble and HREPEX" into release-4-6

11 years agoMerge "Fixed AVX256 double-precision kernels for gcc" into release-4-6
Christoph Junghans [Thu, 20 Dec 2012 21:07:45 +0000 (22:07 +0100)]
Merge "Fixed AVX256 double-precision kernels for gcc" into release-4-6

11 years agocmake: added option to disable quotes
Christoph Junghans [Wed, 19 Dec 2012 17:50:27 +0000 (10:50 -0700)]
cmake: added option to disable quotes

Change-Id: Ia1793f3d3dddb3a08012723c2279cab51fa1eafa

11 years agoFixes for andersen temperature control
Michael Shirts [Sat, 15 Dec 2012 16:50:52 +0000 (11:50 -0500)]
Fixes for andersen temperature control

First, fixes a bug introduced in the merge that
caused the same random seed being used on all nodes, resulting
in correlated velocities in the kinetic energy, and thus an
incorrect distribution of total kinetic energy because of correlations
between particles.

Also fixed another bug caused during merge that resulted in andersen
not being applied when there were no constraints.

Change-Id: If6b857bf3d3b9345c18d0680fdba0f65a4860a7e

11 years agoFixes for expanded ensemble and HREPEX
Michael Shirts [Mon, 10 Dec 2012 02:50:10 +0000 (21:50 -0500)]
Fixes for expanded ensemble and HREPEX

Various other fixes broke expanded ensemble and Hamiltoian
replica exchange. These changes restore functionality.

Change-Id: Iae9def3838a5b90f1efee1fb0598441e0af6cce3

11 years agoFixed AVX256 double-precision kernels for gcc
Erik Lindahl [Thu, 20 Dec 2012 14:05:42 +0000 (15:05 +0100)]
Fixed AVX256 double-precision kernels for gcc

Gcc is pickier with memory alignment and implicit conversions than
either clang or icc. This patch makes sure we align tables to 32-byte
boundaries (16 before), and uses explicit casts to make gcc happy.
Fixes redmine #1074.

Change-Id: I613d49dad74597ce6167e18fd3a048254bc1b859

11 years agoFix for the pressure in MTTK with constraints + dispersion
Michael Shirts [Sat, 1 Dec 2012 19:55:47 +0000 (14:55 -0500)]
Fix for the pressure in MTTK with constraints + dispersion

Fix for pressure in MTTK - broken at some point in the
merge process.  The MTTK+constraints code definitely needs to
be simplified for 5.0, it's too easy to break on code rearrangements
right now!

Testing with simple systems over long time shows that the pressure is
unbiased, while the PR pressure is off by a factor of 1/N (which is totally
fine for most realistic systems).

Fixes redmine bug #1061
Change-Id: Ie82cf8d6bdeb3e47db044ae34fc42c077ad73c75

11 years agoSmall fix for g_tune_pme
Carsten Kutzner [Thu, 20 Dec 2012 12:20:28 +0000 (13:20 +0100)]
Small fix for g_tune_pme

Setting the "-err" command line flag in g_tune_pme would, in combination with the "-launch" flag
prevent a proper launch of mdrun after tuning since "-err" would also appear on the mdrun
command line. This patch removes the "-err" switch from the mdrun arguments list.

Change-Id: Idb2e3cf2e4eca587180b932faccc227be171b3d7

11 years agofixed recent bugs in LINCS for derivatives
Berk Hess [Thu, 20 Dec 2012 09:09:59 +0000 (10:09 +0100)]
fixed recent bugs in LINCS for derivatives

The LINCS projection code, do_lincsp, working on derivatives
got OpenMP parallelization in 6585fa01, but this introduced bugs.
The constraining of derivatives of the coordinates has now been fixed
and the lambda derivatives have been added again.
Also constraining of forces now works with OpenMP.

Change-Id: Idc5516ec0e9d994a86cf8acdc7480502c8dcac1d

11 years agoMerge "Remove the rest of the fortran/power6 acceleration" into release-4-6
Mark Abraham [Wed, 19 Dec 2012 17:47:27 +0000 (18:47 +0100)]
Merge "Remove the rest of the fortran/power6 acceleration" into release-4-6

11 years agoMerge "Always build template program" into release-4-6
Mark Abraham [Wed, 19 Dec 2012 17:30:20 +0000 (18:30 +0100)]
Merge "Always build template program" into release-4-6

11 years agoFix Reference build type
Mark Abraham [Wed, 19 Dec 2012 14:10:56 +0000 (15:10 +0100)]
Fix Reference build type

This typo led to the Reference build claiming it was not building
for thread-MPI, but actually it did. Pity we don't have a CMake
syntax checker.

Change-Id: I932794145471451e09028297cfbffa4a72e96f39

11 years agoMerge "Avoid using undefined CMake variables" into release-4-6
Szilárd Páll [Wed, 19 Dec 2012 14:38:23 +0000 (15:38 +0100)]
Merge "Avoid using undefined CMake variables" into release-4-6

11 years agoMerge "Removed orphan file" into release-4-6
Szilárd Páll [Wed, 19 Dec 2012 14:10:05 +0000 (15:10 +0100)]
Merge "Removed orphan file" into release-4-6

11 years agoMerge "Fix license text printed by programs." into release-4-6
Roland Schulz [Wed, 19 Dec 2012 13:54:49 +0000 (14:54 +0100)]
Merge "Fix license text printed by programs." into release-4-6

11 years agoMerge changes Idc652236,If03cf569 into release-4-6
Roland Schulz [Wed, 19 Dec 2012 13:49:59 +0000 (14:49 +0100)]
Merge changes Idc652236,If03cf569 into release-4-6

* changes:
  renamed gmx_x86_simd_macros.h to gmx_simd_macros.h
  implemented nbnxn AVX-256 2x(N+N) kernels

11 years agoMerge "issue error if GPU ID is provided with GPU acc. off" into release-4-6
Roland Schulz [Wed, 19 Dec 2012 13:16:08 +0000 (14:16 +0100)]
Merge "issue error if GPU ID is provided with GPU acc. off" into release-4-6

11 years agoRemoved orphan file
Mark Abraham [Wed, 19 Dec 2012 12:19:51 +0000 (13:19 +0100)]
Removed orphan file

The use of this check was removed long ago, the bug report that
it cites is invalid, and its detection functionality is duplicated
in gmxGetCompilerInfo.

Change-Id: I8478e155376930c27d259214e13d9b1e6e7a9cca

11 years agoAvoid using undefined CMake variables
Mark Abraham [Wed, 19 Dec 2012 12:04:52 +0000 (13:04 +0100)]
Avoid using undefined CMake variables

C_COMPILER_VERSION is not defined before CMake 2.8.8, so the logic
and reporting was wrong. However, we already have a work-around.

Change-Id: If34deadf3a912d48e204d80cc5be7718c151e39d

11 years agoMerge "Fixes redmine issue #1071" into release-4-6
Christoph Junghans [Tue, 18 Dec 2012 23:22:23 +0000 (00:22 +0100)]
Merge "Fixes redmine issue #1071" into release-4-6

11 years agoissue error if GPU ID is provided with GPU acc. off
Szilard Pall [Mon, 17 Dec 2012 21:28:28 +0000 (22:28 +0100)]
issue error if GPU ID is provided with GPU acc. off

Manually setting the GPU IDs is an implicit "GPU on" request from the
user, so we need to fail if mdrun in compiled without GPU support.
Additionally, added hint to what content is expected in the GPU ID
string to the respective errors and changed an incorrect collective
fatal.

Change-Id: Iebce58c0626889d047eebebd8e4547d4f1e9ff26

11 years agorenamed gmx_x86_simd_macros.h to gmx_simd_macros.h
Berk Hess [Wed, 12 Dec 2012 15:25:08 +0000 (16:25 +0100)]
renamed gmx_x86_simd_macros.h to gmx_simd_macros.h

This is in preparation for non-x86 SIMD acceleration.

Change-Id: Idc652236f4b2e0f48e759d579c798c1b0dc6944f

11 years agoimplemented nbnxn AVX-256 2x(N+N) kernels
Berk Hess [Mon, 10 Dec 2012 17:20:24 +0000 (18:20 +0100)]
implemented nbnxn AVX-256 2x(N+N) kernels

With AVX-256 nbnxn kernels are faster with 2x(4+4)=4x4 than 4x8.
To reduce the number of nbnxn kernels, there are no longer both
simd128 and simd256 kernels, but simd_4xn and for AVX-256 additionally
simd_2xnn kernels. The nbnxn search code is simplified significantly,
as it no longer has 128-bit and 256-bit simd simultaneously.
The SIMD pair-search and kernel configuration is now separated from
the SSE SIMD bounding box code configuration.

Additionally the label x86_simd in all nbnxn files is replaced by simd
only, in prepartion for non-x86 SIMD acceleration.

Change-Id: If03cf569cf918dcec675fbcb43e1ff3a30528f74

11 years agoMerge "reduced PLINCS communication with H-bond constraints" into release-4-6
Szilárd Páll [Mon, 17 Dec 2012 22:43:00 +0000 (23:43 +0100)]
Merge "reduced PLINCS communication with H-bond constraints" into release-4-6

11 years agoFix license text printed by programs.
Teemu Murtola [Mon, 17 Dec 2012 15:51:09 +0000 (17:51 +0200)]
Fix license text printed by programs.

Since source files are now licensed under LGPL, it doesn't make much
sense for the programs to indicate they are still under GPL.
Follow-up to I1c507b3, which seems to have missed this.

Part of #818.

Change-Id: I44ffcf75f4840326d09f924249619077ea5a1013

11 years agoRemove the rest of the fortran/power6 acceleration
Christoph Junghans [Mon, 17 Dec 2012 18:18:46 +0000 (11:18 -0700)]
Remove the rest of the fortran/power6 acceleration

* kernels got removed in 38069fb14a4c2ba3b61880c96dc017d16294db2c
* remove it from cmake as an option

Change-Id: I84a6e584673a80a7b1fa2f7b8f0b2c54658abc2f

11 years agoFixes redmine issue #1071
Michael Shirts [Fri, 14 Dec 2012 05:02:38 +0000 (00:02 -0500)]
Fixes redmine issue #1071

Fixes issue where pull code can crash grompp if foreign lambda
is not defined in the mdp.  Some simplification of code path for
initialization of lambda as a side product.

Change-Id: I6c6a0c1591cc332efddb769f3552c0379e7dc708

11 years agoFix typo
Mark Abraham [Thu, 13 Dec 2012 21:37:43 +0000 (22:37 +0100)]
Fix typo

Change-Id: Id0fcbaa04647f3e3f4867686e207637efac8cdae

11 years agoAlways build template program
Christoph Junghans [Sun, 25 Nov 2012 21:31:21 +0000 (14:31 -0700)]
Always build template program

* make sure template is not broken
* gromacs dir contains copy of headers
* fixed warnings in template.c
* don't use config.h as it not installed
* use PKG_CFLAGS to emulate user environment

Change-Id: Ib8a3a5a9717727721d26ae4afbb69633e319d978

11 years agoMerge "Fix compilation with PGI" into release-4-6
Christoph Junghans [Tue, 11 Dec 2012 17:52:15 +0000 (18:52 +0100)]
Merge "Fix compilation with PGI" into release-4-6

11 years agoreduced PLINCS communication with H-bond constraints
Berk Hess [Fri, 7 Dec 2012 16:29:10 +0000 (17:29 +0100)]
reduced PLINCS communication with H-bond constraints

When only constraining bonds involving hydrogens, there are
at most two sequential constraints connected. In that case
we now only communicate once in PLINCS.

Change-Id: I841c22b19574b1bb787b5be46637b69c77f1f757

11 years agoMerge "force C++ linking of the gpu_utils" into release-4-6
Christoph Junghans [Mon, 10 Dec 2012 17:58:56 +0000 (18:58 +0100)]
Merge "force C++ linking of the gpu_utils" into release-4-6

11 years agoMerge "fixed GPU pair-search with GMX_CPU_ACCELERATION=None" into release-4-6
Roland Schulz [Sun, 9 Dec 2012 01:01:45 +0000 (02:01 +0100)]
Merge "fixed GPU pair-search with GMX_CPU_ACCELERATION=None" into release-4-6

11 years agoMerge "Fix build of template and other external code." into release-4-6
Roland Schulz [Sun, 9 Dec 2012 00:59:53 +0000 (01:59 +0100)]
Merge "Fix build of template and other external code." into release-4-6

11 years agoFix compilation with PGI
Roland Schulz [Fri, 7 Dec 2012 05:26:43 +0000 (21:26 -0800)]
Fix compilation with PGI

- The GMX_TEST_CFLAG with /ARCH doesn't fail because it isn't
  recognized as flag. Thus it is added and then causes trouble later
  because it is treated as filename.
- Extra { } for omp ordered
- Add warning to not use PGI because it fails the regressiontests
  (12.9 and 12.10) or crashes during the compilation with internal
  compiler errors (12.5, 11.9) (I didn't test more than those
  4 versions).
- I think it is worthwile to fix the first two issues even if PGI
  is not recommended. They could also affect other compilers and
  furture PGI version hopefully don't produce incorrect results.

Change-Id: I6ea24498a6c6712a8ad4b604a0b3c685de1ce0be

11 years agofixed GPU pair-search with GMX_CPU_ACCELERATION=None
Berk Hess [Fri, 7 Dec 2012 16:49:11 +0000 (17:49 +0100)]
fixed GPU pair-search with GMX_CPU_ACCELERATION=None

Fixes #1042 and fixes #1062

Change-Id: I95ed242823aa1c108fc6c26bedc88062a0cd81d7

11 years agoMake SSE4.1 warning clearer
Roland Schulz [Thu, 6 Dec 2012 12:23:20 +0000 (07:23 -0500)]
Make SSE4.1 warning clearer

"Disable SSE4.1" can be misunderstood for a suggestion to set
the acceleration to "None".

Change-Id: If83339c2fedd8dcf47aa4a841128cf08cc369a90

11 years agoNew beta release: 4.6-beta2
Mark Abraham [Wed, 5 Dec 2012 20:31:43 +0000 (21:31 +0100)]
New beta release: 4.6-beta2

Change-Id: I3c9ac75258154b5779516ddd0de0d23b1e972803

11 years agoApply LGPL license to new files
Mark Abraham [Wed, 5 Dec 2012 20:30:14 +0000 (21:30 +0100)]
Apply LGPL license to new files

Note the AdResS python generator is not currently used
(or functional) but in case it is used later, it's
there and licensed and so will its output be licensed.

TODO:
Still same as last LGPL license commit

Change-Id: I8b62d5160380c4da6f25eeacd6809fec6aac55f2

11 years agoUpdates for install guide
Mark Abraham [Wed, 5 Dec 2012 20:55:53 +0000 (21:55 +0100)]
Updates for install guide

Change-Id: I9448ba0ea372f330f16172de73e3285c1a682032

11 years agoRemoving (inaccurate) virial temperature calc.
Michael Shirts [Sat, 1 Dec 2012 20:23:47 +0000 (15:23 -0500)]
Removing (inaccurate) virial temperature calc.

Removing the virial temperature, which is not a reliable measure.
Earlier, I had put in a calculation of temperature via the virial
to try to validate the potential energy distribution. It turns out
this is not a good way of doing things, as the virial temperature
differs from the true temperature by a factor proportional to the
pressure, which is not very useful for sentitive calculations.  It's
better to use the ensemble validation relationships I developed.
So in the spirit of simplifying the code (which we all agree needs
to be done), I'm removing this calculation.

Change-Id: Ic942b9af294d928d1675de4f45436dc43aff9649

11 years agoFix build of template and other external code.
Teemu Murtola [Thu, 6 Dec 2012 11:32:28 +0000 (13:32 +0200)]
Fix build of template and other external code.

Installed headers need to use relative include paths.
Broken by Ied26158 (which was part of #701).

Change-Id: I2d9e6ee3878ae1bfa70286996e490abad00f19a0

11 years agoRe-enable AdResS feature
Sebastian Fritsch [Fri, 23 Nov 2012 03:09:40 +0000 (20:09 -0700)]
Re-enable AdResS feature

* updated generic AdResS kernel
* added nb_kernel_adress_template_c.pre
* added gmx_mblist_interaction_type
* seperate neighbour lists for the adress hybrid kernel(s)
* put_in_list_adress decides for each ij pair whether to use
  * standard kernels (if interactions are explict or coarse-grained)
  * add them to the adress list to use the AdResS kernel
* removed obsolete TODOs
* removed obsolete pureex/purecg booleans from mdatoms
NOTE
* make_nb_kernel_adress_c.py currently unused, actually the generic AdResS Kernel seems to perform quite well already (faster than the old implementation)

Change-Id: I7bc41aa5b122f3b0c1aef8ae3210d0bbba7efb02

11 years agoremoved last OpenMP O(nthreads) bottleneck
Berk Hess [Sat, 1 Dec 2012 19:11:29 +0000 (20:11 +0100)]
removed last OpenMP O(nthreads) bottleneck

The nbnxn non-bonded force buffer clear would zero the full force
buffer for every OpenMP thread, which lead to O(nthreads) operations.
Now each threads only clears block of the buffer is actually uses.
The buffer flagging procedure has been simplified and the reduction
has been made more efficient. With domain decomposition there is not
much improvement yet, here we should change the assignment of pairs
to threads.

Change-Id: Ib657f8eaa394afdd82086dcc59cbb8c5926f77f0

11 years agoEliminate confusion from pkgconfig FFTW detection
Mark Abraham [Fri, 30 Nov 2012 15:50:10 +0000 (16:50 +0100)]
Eliminate confusion from pkgconfig FFTW detection

If pkgconfig fails to find FFTW, it emits a CMake status messge,
but we do our own detection immediately afterwards. Seeing
a failure followed by a success can be confusing to users, so we
let them know we're not worried by pkg-config failing.

Change-Id: If270dd5d6fe10bc3a58a6fa56c9028cf61859d74

11 years agodon't warn during configuring if no GPUs were found
Szilard Pall [Wed, 5 Dec 2012 02:19:41 +0000 (03:19 +0100)]
don't warn during configuring if no GPUs were found

This change avoids issuing the post-configure GPU acceleration warning
if no GPUs were found in the build machine.

Change-Id: I63962c43ec9a8b9ee4f5ec2d1a19d4d819419ff7

11 years agofixed obsolete gmx_fatal in OpenMM build
Christoph Junghans [Mon, 26 Nov 2012 03:27:29 +0000 (20:27 -0700)]
fixed obsolete gmx_fatal in OpenMM build

Change-Id: I29686a897e1e38b2cc98165ba6c9521d3e29d0c6

11 years agofirst step toward moving OpenMM support to contrib
Szilard Pall [Thu, 29 Nov 2012 23:21:06 +0000 (00:21 +0100)]
first step toward moving OpenMM support to contrib

Although this is a sloppy and incomplete solution, it's important that
for 4.6-beta1 the user at notices that OpenMM acceleration is not first
class citizen when it comes to support.

Change-Id: I494f3379865de4931af1eef8cbf09a63dba72648

11 years agoMerge "don't auto-set nvcc host compiler with cmake >2.8.9" into release-4-6
Mark Abraham [Wed, 5 Dec 2012 20:03:10 +0000 (21:03 +0100)]
Merge "don't auto-set nvcc host compiler with cmake >2.8.9" into release-4-6

11 years agoMerge "Keep FindCUDA quiet when it is not useful" into release-4-6
Mark Abraham [Wed, 5 Dec 2012 19:51:59 +0000 (20:51 +0100)]
Merge "Keep FindCUDA quiet when it is not useful" into release-4-6

11 years agoMerge "Remove TEST_TMPI_ATOMICS_ONLY" into release-4-6
Mark Abraham [Wed, 5 Dec 2012 19:51:29 +0000 (20:51 +0100)]
Merge "Remove TEST_TMPI_ATOMICS_ONLY" into release-4-6

11 years agoMerge "Re-apply -dev version name between beta 1 and beta 2" into release-4-6
Mark Abraham [Wed, 5 Dec 2012 19:50:34 +0000 (20:50 +0100)]
Merge "Re-apply -dev version name between beta 1 and beta 2" into release-4-6

11 years agoMerge "fixed segv in Verlet pair-search with trilinic DD" into release-4-6
Roland Schulz [Wed, 5 Dec 2012 19:45:16 +0000 (20:45 +0100)]
Merge "fixed segv in Verlet pair-search with trilinic DD" into release-4-6

11 years agoMerge "Fixed labelling of g_hbond plots" into release-4-6
Mark Abraham [Wed, 5 Dec 2012 19:31:52 +0000 (20:31 +0100)]
Merge "Fixed labelling of g_hbond plots" into release-4-6

11 years agoMerge "fixed incorrect virial with virtual sites and OpenMP" into release-4-6
Roland Schulz [Wed, 5 Dec 2012 19:28:41 +0000 (20:28 +0100)]
Merge "fixed incorrect virial with virtual sites and OpenMP" into release-4-6

11 years agoRemove TEST_TMPI_ATOMICS_ONLY
Roland Schulz [Thu, 29 Nov 2012 01:59:29 +0000 (20:59 -0500)]
Remove TEST_TMPI_ATOMICS_ONLY

Not needed anymore since aaf38d0b8683c510a5

Change-Id: Icce5578e7b1bd64a5dcfef1e2e38358ce5d9707c

11 years agoRe-apply -dev version name between beta 1 and beta 2
Mark Abraham [Fri, 30 Nov 2012 09:48:51 +0000 (10:48 +0100)]
Re-apply -dev version name between beta 1 and beta 2

We'll still have to strip it on and off for the release tarballs.

Change-Id: Ib71d0c593f4d16e4fee0e7ec012b8cc2f0099b65

11 years agofixed incorrect virial with virtual sites and OpenMP
Berk Hess [Wed, 5 Dec 2012 15:50:30 +0000 (16:50 +0100)]
fixed incorrect virial with virtual sites and OpenMP

The virial was incorrect with more than 1 OpenMP thread
and virtual sites crossing a box boundary.
Fixes #1060

Change-Id: Ib659f6eb7719f4808b37e828b96526587f8a0e69

11 years agoKeep FindCUDA quiet when it is not useful
Mark Abraham [Wed, 5 Dec 2012 14:59:59 +0000 (15:59 +0100)]
Keep FindCUDA quiet when it is not useful

If detection has been done and GPUs were not detected, a user who
didn't give orders about using GPUs should not need to worry about
anything with CUDA in the name. Otherwise, messages like
"CUDA_TOOLKIT_ROOT_DIR not found or specified" are emitted
by FindCUDA as warnings, and require user interaction when
using ccmake.

Change-Id: If31603a4bdfd72ca5ed4f0313f708b3efe778a74

11 years agofixed segv in Verlet pair-search with trilinic DD
Berk Hess [Wed, 5 Dec 2012 12:58:19 +0000 (13:58 +0100)]
fixed segv in Verlet pair-search with trilinic DD

With the Verlet scheme and domain decomposition the bounding box
of the zone, used for the pair-search grid, could be calculated
incorrectly for certain triclinic boxes, causing array indices
to get out of bounds (usually causing a segv).
Fixes #1059

Change-Id: I5bb146baaec59271dd5e68b40c545ed29d061831

11 years agoFixed labelling of g_hbond plots
Erik Marklund [Wed, 5 Dec 2012 11:41:15 +0000 (12:41 +0100)]
Fixed labelling of g_hbond plots

Hydrogen-bond angle and distance distribution plots are now correctly
labelled.

This commit fixes #1052

Change-Id: Iadcc9c64b70de4a8c55b15d997b0c2ebd5a6db08

11 years agodon't auto-set nvcc host compiler with cmake >2.8.9
Szilard Pall [Wed, 5 Dec 2012 01:40:12 +0000 (02:40 +0100)]
don't auto-set nvcc host compiler with cmake >2.8.9

Starting with CMake 2.8.10 the FindCUDA module set sets the nvcc host
compiler by default which clashes with our internal implementation of
the same feature. To support both pre-2.8.10 and later versions, this
change renames the CUDA_NVCC_HOST_COMPILER cache variable to
CUDA_HOST_COMPILER (used by CMake 2.8.10's FindCUDA) and avoids adding
the -ccbin option to the nvcc flags with CMake 2.8.10 and later.

Fixes #1051

Change-Id: I4d4048d520edb8655b88b6bae35f97df76a25910

11 years agoforce C++ linking of the gpu_utils
Szilard Pall [Mon, 8 Oct 2012 22:54:56 +0000 (00:54 +0200)]
force C++ linking of the gpu_utils

Commit c0180203d4247d5e6 forced C++ linkage of all main functions.
But Carlo Camilloni reported that this can still give linker
errors. This should enforce C++ linkage also of libgmx.

Change-Id: I9a82637b792d727ea95e1dc6990099b621fc8ef2

11 years agofixed issue with -multi and GPUs
Berk Hess [Thu, 29 Nov 2012 21:44:15 +0000 (22:44 +0100)]
fixed issue with -multi and GPUs

Several GPU related parts of the code did not take the multsim
functionality and separate PME nodes into account.

Change-Id: I4f6471dfda3d14ed7ca33205c56849a27564c742

11 years agoUpdate copyright statements and change license to LGPL
Mark Abraham [Tue, 27 Nov 2012 13:02:57 +0000 (14:02 +0100)]
Update copyright statements and change license to LGPL

* I have followed http://www.gnu.org/licenses/gpl-howto.html
* Copyright is asserted for 2012 (which is needed for the license to
  have any effect)
* Mostly that meant amending the previous statements, most of which
  had no legal force anyway (e.g. using "2001-2004" requires that
  you spell out that you really mean every year in between is a
  copyrightable year)
* Many files had no copyright on them; now they do
* Licensing is now LGPL v2.1 (or later). Unfortunately a CPack
  limitation means we have to use just one file for all our
  licensing statements. That's not great, but it will do.
* Previous copyright statements are intact
* External code used under license retains that license statement
  in the code
* Changes were made with a Perl script so this pain is
  not so bad next time
* The copyright comment no longer names a specific version,
  so that we don't spam the git log for no real purpose.
* Removed some remaining emacs editor lines, CVS tags and GROMACS
  acronym generator spam
* Some code areas are not yet relicensed, pending anticipated
  updates e.g. AdResS kernels
* Group kernels have been regenerated so that both the templates and
  the code all bear the copyright - this will continue to occur for
  new kernel sets
* No duplicate copyright statements on essentially unmodified
  GPU memtest code used under license
* No duplicate copyright statements on unmodified thread_mpi code
* Don't bother licensing cmake/*.c files
* Don't bother licensing anything in share subdirectory

The following things we will fix after 4.6-beta1

* TODO vectype_ops.cuh probably from CUDA SDK needs attribution
* TODO fix licensing statements for things we have stolen from CMake
* TODO fix things under admin, scripts

Change-Id: I1c507b3feb9ec97d02c87d73cc66cfd5f7381c23

11 years agomade errors during GPU detection non-fatal
Szilard Pall [Thu, 29 Nov 2012 21:12:13 +0000 (22:12 +0100)]
made errors during GPU detection non-fatal

Errors during the GPU detection phase were incorrectly treated as fatal
which meant that in cases like GPU set to thread/process exclusive mode
or runtime/driver incompatibilities resulted in fatal errors when using
binaries compiled with GPU acceleration. These errors are now reported
as a note to the user and allow mdrun to fall back to CPU kernels.

Change-Id: Ie8ebb5a1eeb6533ad451adfd3377870ec859a31d

11 years agofix cmake re-running failure introduced by ef1127f
Szilard Pall [Thu, 29 Nov 2012 14:57:33 +0000 (15:57 +0100)]
fix cmake re-running failure introduced by ef1127f

The find_package(CUDA) macro needs to be called even after we've done
the GPU detection/setup, otherwise functionality provided by this module
will not be available and CUDA compilation helper macros will not be
found.

Change-Id: I6320f20fc3189f5be57b7344ca8049ee418bc3fb

11 years agoMerge "Initial commit of new install guide" into release-4-6
Mark Abraham [Thu, 29 Nov 2012 22:25:58 +0000 (23:25 +0100)]
Merge "Initial commit of new install guide" into release-4-6

11 years agoMerge "Bump version to 4.6-beta1" into release-4-6
Mark Abraham [Thu, 29 Nov 2012 22:25:28 +0000 (23:25 +0100)]
Merge "Bump version to 4.6-beta1" into release-4-6

11 years agoInitial commit of new install guide
Mark Abraham [Tue, 20 Nov 2012 21:41:45 +0000 (22:41 +0100)]
Initial commit of new install guide

TODO:
Many things noted inside

Change-Id: If8655ef2d7eb88e9739873d0f2f53fbb5dcb3c1a

11 years agoBump version to 4.6-beta1
Mark Abraham [Thu, 29 Nov 2012 17:20:53 +0000 (18:20 +0100)]
Bump version to 4.6-beta1

Change-Id: If663b114d207f7c133b2f40473831e13bec9a8ab

11 years agoMerge "Added .gitignore for kernel generation" into release-4-6
Mark Abraham [Thu, 29 Nov 2012 19:10:08 +0000 (20:10 +0100)]
Merge "Added .gitignore for kernel generation" into release-4-6

11 years agoMerge "Double precision AVX-256 kernels" into release-4-6
Mark Abraham [Thu, 29 Nov 2012 18:09:57 +0000 (19:09 +0100)]
Merge "Double precision AVX-256 kernels" into release-4-6

11 years agoAdded .gitignore for kernel generation
Mark Abraham [Wed, 28 Nov 2012 14:01:51 +0000 (15:01 +0100)]
Added .gitignore for kernel generation

Change-Id: Ie666f2169a074f53695c6c49677714b9a9296932

11 years agoMerge "Fixing issue with GPU detection reporting" into release-4-6
Mark Abraham [Thu, 29 Nov 2012 18:03:46 +0000 (19:03 +0100)]
Merge "Fixing issue with GPU detection reporting" into release-4-6

11 years agoMerge "Double precision AVX_128_FMA kernels" into release-4-6
Mark Abraham [Thu, 29 Nov 2012 18:03:11 +0000 (19:03 +0100)]
Merge "Double precision AVX_128_FMA kernels" into release-4-6

11 years agoMerge "Fix: pthread variables were overwritten by gmxManageGPU" into release-4-6
Mark Abraham [Thu, 29 Nov 2012 17:41:06 +0000 (18:41 +0100)]
Merge "Fix: pthread variables were overwritten by gmxManageGPU" into release-4-6

11 years agoDouble precision AVX-256 kernels
Erik Lindahl [Thu, 29 Nov 2012 01:03:39 +0000 (02:03 +0100)]
Double precision AVX-256 kernels

Accelerated nonbonded group kernels optimized for
Intel Sandy Bridge and Ivy Bridge processors.

Change-Id: I82df7a93a9dea1592bbcebdbcdca05e3f30203f6

11 years agoDouble precision AVX_128_FMA kernels
Erik Lindahl [Wed, 28 Nov 2012 21:03:25 +0000 (22:03 +0100)]
Double precision AVX_128_FMA kernels

Kernels optimized for modern Opteron processors.
Using tables for Ewald right now, this might change with benchmarking.

Change-Id: I7da359c76b3c517e920a369413b11130be44631c

11 years agoFixing issue with GPU detection reporting
Mark Abraham [Thu, 29 Nov 2012 16:08:37 +0000 (17:08 +0100)]
Fixing issue with GPU detection reporting

The detection variable was being over-written by a hard-coded true
variable, which is now fixed.

Change-Id: Ib1ba8fdccc2045b878d5156e1475ece78be3725f

11 years agoMerge "Print error if no thread support is available" into release-4-6
Christoph Junghans [Thu, 29 Nov 2012 16:06:29 +0000 (17:06 +0100)]
Merge "Print error if no thread support is available" into release-4-6

11 years agoRefuse to build with clang 3.0
Mark Abraham [Tue, 20 Nov 2012 13:38:39 +0000 (14:38 +0100)]
Refuse to build with clang 3.0

The 3.0 compiler is definitely buggy for the group kernels, so
we refuse to build with this version at all. The test
works for both C and C++, and correctly detects (say) Apple
clang 4.1 as clang based on the LLVM 3.0 back end, like
everybody else seems to base their numbering on!

Refs #1039

Change-Id: I259fab3c022e0cf94c06ff34d2faf38663d1d7b7

11 years agoAdd a CMake warning about FFTW with --enable-avx
Mark Abraham [Mon, 19 Nov 2012 18:04:52 +0000 (19:04 +0100)]
Add a CMake warning about FFTW with --enable-avx

FFTW_MEASURE runs single-threaded tests for FFT performance, which is
very different from the GROMACS usage pattern, particularly with how
the cache access pattern works. In practice, with FFTW 3.3.2 and
3.3.3, the performance of FFTW with --enable-avx is considerably
worse than that of FFTW with --enable-sse or --enable-sse2. It's
unlikely but theoretically possible that performance might change,
so we prompt the user both to avoid --enable-avx now, and to
perhaps consider it in the future.

Change-Id: Ib4906645587cfc6a6306a7f7f46d612a6446b156