Szilard Pall [Wed, 28 Nov 2012 00:44:52 +0000 (01:44 +0100)]
don't print nonbonded kernel info with GMX_NO_NONBONDED
Also moves all group kernel details from log to debug.
We should put back a one line group kernel message in log.
Change-Id: I2a90554b9efa75fd4fb2df9c1ba17fd5f626e390
Mark Abraham [Thu, 29 Nov 2012 01:30:41 +0000 (02:30 +0100)]
Merge "SSE4.1 double precision kernels" into release-4-6
Mark Abraham [Thu, 29 Nov 2012 01:30:04 +0000 (02:30 +0100)]
Merge "Double precision SSE2 kernels" into release-4-6
Mark Abraham [Wed, 28 Nov 2012 23:14:11 +0000 (00:14 +0100)]
Merge "Ported back some AVX256 optimizations to SSE2/SSE4.1/AVX128." into release-4-6
Erik Lindahl [Mon, 26 Nov 2012 23:43:00 +0000 (00:43 +0100)]
SSE4.1 double precision kernels
Nonbonded kernels for group cutoff scheme. Same thing as in
single applies here; these kernels are hardly faster than SSE2,
but included so people can tweak and improve them in the future.
Change-Id: Ic360ee3ed1fae1be764f399ac6c37364da4fd33f
Erik Lindahl [Mon, 26 Nov 2012 22:34:31 +0000 (23:34 +0100)]
Double precision SSE2 kernels
For nonbonded interactions with group cutoff scheme.
Change-Id: I2037f94c24126f103fa232e77783775a62821f54
Erik Lindahl [Mon, 26 Nov 2012 17:56:49 +0000 (18:56 +0100)]
Ported back some AVX256 optimizations to SSE2/SSE4.1/AVX128.
We can gain a couple of percent in the group kernels for some cases
by only storing j-particle forces once in water kernels, and
I have updated the last few routines that used constructs that
some compliers considered fragile.
Change-Id: Ic69307c735c57dd92bf0b35e88550252447e4f7f
Berk Hess [Wed, 28 Nov 2012 21:29:08 +0000 (22:29 +0100)]
fixed thread pinning with mdrun -multi
With mdrun -multi, multiple simulations running on the same
physiscal nodes would be pinned to the same cores.
Change-Id: Iaffba21e79f1db50aa1802d446f6938b2dba045d
Mark Abraham [Wed, 28 Nov 2012 20:42:49 +0000 (21:42 +0100)]
Merge "Fix Window-GPU build" into release-4-6
Christoph Junghans [Wed, 28 Nov 2012 20:13:52 +0000 (21:13 +0100)]
Merge "Fix cpack src ignore rule" into release-4-6
Roland Schulz [Wed, 28 Nov 2012 20:11:43 +0000 (21:11 +0100)]
Merge "Remove CVS files" into release-4-6
Roland Schulz [Tue, 27 Nov 2012 22:19:22 +0000 (17:19 -0500)]
Fix cpack src ignore rule
Without excaping and $ .git applied to xdlgitem.c
Change-Id: If6674303dde356ee4ceef62b712aa38709e5aee0
Erik Lindahl [Thu, 22 Nov 2012 22:18:05 +0000 (23:18 +0100)]
128-bit AVX kernels, with FMA instructions for Opteron bulldozer
These kernels primarily enable the FMA instructions
(fused multiply-add) available on modern AMD hardware,
but also use some other AMD-specific instructions and
optimization. Because of FMA availability , it is
slightly faster to use the analytical form of our Ewald
correction instead of a table. I have also corrected a
sign error in the comment (code was fine) of the analytical
PME correction.
Change-Id: Ief0fc0c2433e02ecea572c1e83b9a2493d73e853
Christoph Junghans [Mon, 12 Nov 2012 02:40:38 +0000 (19:40 -0700)]
Add option to internally build FFTW if selected
Fixes #1031
Change-Id: If9d7cee68f4ced26e931b9a7c5595df47185bb66
Mark Abraham [Wed, 28 Nov 2012 15:01:01 +0000 (16:01 +0100)]
Merge "extended nbnxn x86 SIMD kernel blendv support" into release-4-6
Szilárd Páll [Wed, 28 Nov 2012 13:51:48 +0000 (14:51 +0100)]
Merge changes I9b865c4c,Ib709290e into release-4-6
* changes:
use tMPI API for thread affinity setting
Fixed Windows tMPI_Thread_self().
Szilard Pall [Fri, 16 Nov 2012 04:26:13 +0000 (05:26 +0100)]
enable GPU emulation without GPU support
GPU emulation can be useful to estimate the performance one could get
by adding GPU(s) to the machine by running with GMX_EMULATE_GPU and
GMX_NO_NONBONDED environment variables set. As this feature is useful
even with mdrun compiled without GPU support, this commit makes GPU
emulation mode always available.
Change-Id: I0b90b8ec1c6e3116f28f66aac4f3c8ae0831239d
Berk Hess [Wed, 28 Nov 2012 09:41:21 +0000 (10:41 +0100)]
extended nbnxn x86 SIMD kernel blendv support
With icc and GMX_X86_AVX_256 the analytical Ewald kernel (the most
used kernel) is 4% faster with blendv.
Change-Id: I65a6ec2cb3fe05d81ab5d60a856b7fedd9398f05
Szilard Pall [Fri, 19 Oct 2012 20:26:47 +0000 (22:26 +0200)]
use tMPI API for thread affinity setting
Also added checks to detect the lack of support for affinities as well
as failed affinity setting.
Additionally, removed the #ifdef that prevented pinning to happen if
mdrun is not compiled with OpenMP, wihch doesn't make much sense,
If pinning should be turned off at all, it should happen when ntomp > 1,
but this will be sorted out later.
Change-Id: I9b865c4cfebc26e3d57da5da84878aabc9905c57
Sander Pronk [Wed, 28 Nov 2012 08:49:51 +0000 (09:49 +0100)]
Fixed Windows tMPI_Thread_self().
The Windows version of tMPI_Thread_self() does not use thread
local storage any more (this was incompatible with dynamic libraries)
Instead, it relies on a global list for Windows thread ID to tMPI
thread object mapping.
Change-Id: Ib709290e5bcfacf4e564221f49df933cbff0fd3c
Roland Schulz [Tue, 27 Nov 2012 02:12:26 +0000 (21:12 -0500)]
Fix Window-GPU build
7631a13fc278 broke the Windows build.
Cmake bug 8189 makes it impossible to set include
directories properly per file.
This temporary solution uses two solutions for
Windows / non-Windows. The non-Windows solution
uses COMPILE_FLAGS but doesn't work on Windows,
some IDE and potentially other compilers.
The Windows solution adds the include directory
for all source files, even those which don't
require CUDA.
This should be replace with a proper solution.
Change-Id: I3c581f2c34ea8c7af60b8c82aac52ac2ab9cf981
Roland Schulz [Tue, 27 Nov 2012 22:06:32 +0000 (17:06 -0500)]
Remove CVS files
Change-Id: I3b9f8b1af039aa7c82a9a8a40cc24b23e6f542ef
Erik Lindahl [Mon, 26 Nov 2012 00:13:26 +0000 (01:13 +0100)]
Nonbonded group kernels for 256-bit AVX (Intel CPUs)
These kernels employ the wider YMM registers (8 floats) for a slight
speedup. For PME we use the analytical correction rather than tables,
just as for the 128-bit AMD-optimized kernels. Kernels are in the ballpark
of 10% faster than SSE4.1 right now when tested on an ion channel. Not
huge, but that's because we don't spend a lot of time in the kernels
anymore.
Change-Id: I1da9b928e2d57223fc7708cc20dd7920771745ab
Michael Shirts [Mon, 26 Nov 2012 01:16:02 +0000 (20:16 -0500)]
Removes memory allocation from free energy foreign lambda calcs.
Removes the memory allocation from the free energy foreign
lambda calcs by declaring some new space in the enerd array, and
reinitializing only this space. Also makes the foreign lambda
calcs conditional on the group scheme and the non-bonded flag.
Change-Id: I98ed2f6ff45a4d33f9aa7dbde91364cf56c38eae
Roland Schulz [Fri, 16 Nov 2012 15:56:04 +0000 (10:56 -0500)]
Add visibility defines
This adds visibility declarations for functions and variables used
outside of a library. This enables shared linking on Windows and
thus makes the binaries much smaller. It doesn't effect any other
build because the defines are set to empty by default.
With GCC the correctness can be tested by adding to CFLAGS:
-fvisibility=hidden -DUSE_VISIBILITY
Related to #701
Change-Id: Ied261586e49bae11c5f8a8dffe377f0b0f02dd9d
Erik Lindahl [Tue, 27 Nov 2012 16:40:26 +0000 (17:40 +0100)]
Merge "Added affinity support check, visibility macros in thread_mpi" into release-4-6
Erik Lindahl [Tue, 27 Nov 2012 16:06:48 +0000 (17:06 +0100)]
Merge "fixed bug in nbnxn OpenMP non-bonded force reduction" into release-4-6
David van der Spoel [Tue, 27 Nov 2012 09:46:16 +0000 (10:46 +0100)]
Merge "Merge release-4-5-patches into release-4-6" into release-4-6
Berk Hess [Mon, 26 Nov 2012 22:16:16 +0000 (23:16 +0100)]
fixed bug in nbnxn OpenMP non-bonded force reduction
Fixed bug introduced recently in
4a50973c which caused the force
reduction to ignore some non-bonded forces with OpenMP and
domain decomposition.
Change-Id: I359deac21365c844b9af828ba7ddbea26e3fc296
Sander Pronk [Mon, 26 Nov 2012 17:20:03 +0000 (18:20 +0100)]
Added affinity support check, visibility macros in thread_mpi
- Fixed a bug where the return value of tMPI_Thread_setaffinity_single()
is not 0 when there is no error under Windows.
- Added a function tMPI_Thread_setaffinity_support() that returns
whether the platform supports setting thread affinity
- Added dynamic library visibility support macros
Change-Id: I9f74c5095bccc06b413443dd6a1ac2dd56e0d4b8
Sander Pronk [Mon, 26 Nov 2012 20:24:00 +0000 (21:24 +0100)]
Fixed issues with g_bar help text.
Fixed Latex issues and formatting in the g_bar help text.
Change-Id: I8e509d6de9ae998e4c632ffaa1be11c839f3e8f6
Roland Schulz [Mon, 26 Nov 2012 20:04:19 +0000 (15:04 -0500)]
Merge release-4-5-patches into release-4-6
Conflicts (both trivial):
CMakeLists.txt
src/config.h.cmakein
Change-Id: I363ce1c09c68c2be5aa926e893011d43c8ed3337
Roland Schulz [Mon, 26 Nov 2012 20:00:33 +0000 (21:00 +0100)]
Merge "Clean up some mathematical constants" into release-4-6
Erik Lindahl [Mon, 26 Nov 2012 19:55:01 +0000 (20:55 +0100)]
Merge "Use stat for gmx_is_file. Fix get_libdir with symlinks." into release-4-5-patches
Berk Hess [Mon, 26 Nov 2012 14:43:39 +0000 (15:43 +0100)]
made nbnxn analytical Ewald consistent
The recent addition of nbnxn analytical Ewald kernels switched those
kernels on for local interactions, but not for non-local domains.
This performance bug has been fixed.
Change-Id: I28abc822ee8f1cf8f7dbb5c516703145400441b2
Mark Abraham [Thu, 22 Nov 2012 14:48:29 +0000 (15:48 +0100)]
Clean up some mathematical constants
Replaced some hard-coded floats with unified constants in include/maths.h,
and made most places refer to them. Also added note that care is needed
about float-sized constants in CUDA code.
Change-Id: Icf1ec0b81179792d5e6d4d4ab9b38af3a38d7770
Sander Pronk [Thu, 22 Nov 2012 17:28:02 +0000 (18:28 +0100)]
Made the linear extrapolation in g_bar non-default behavior
g_bar currently resorts to linear extrapolation of dH/dl if
it doesn't find covering foreign lambda deltaH values. This is
dangerous because the most likely case of this being used is when
the user forgets to set foreign lambdas.
This commit adds an option -extp to g_bar that the user must
explictily set to enable the linear extrapolation. If not, and
there is no foreign_lambda path, g_bar prints an error message
with details of what to do.
Change-Id: Ib39f964b4f43f79379f00a3331ea4dc88183ed63
Erik Lindahl [Mon, 26 Nov 2012 13:30:00 +0000 (14:30 +0100)]
Merge "Extended build information output and reference build type" into release-4-6
David van der Spoel [Mon, 26 Nov 2012 11:17:13 +0000 (12:17 +0100)]
Fixes #1035 NaN in g_cluster output.
Now always initializes the masses of the atoms to prevent
division by zero downstream.
Change-Id: I1b38ccc7982d4340ed068535f7b7dd8e75e1a4c4
Berk Hess [Thu, 22 Nov 2012 12:15:07 +0000 (13:15 +0100)]
added nbnxn analytical Ewald correction kernels
In single precision on Bulldozer these kernels are 15% faster than
the quadratic-spline table correction, on Sandy Bridge 2%.
These kernels are only selected with AVX in single precision.
Change-Id: I1c3eb3b24b5570107fe3fa0c4b03fe5e215c79c8
Teemu Murtola [Sat, 24 Nov 2012 05:14:35 +0000 (07:14 +0200)]
Extended build information output and reference build type
mdrun -version (and -version flag for other binaries as well) now
contains more information about what was compiled in, as well as
compiler information and versions of external libraries used.
Also added C++ compiler information to mdrun log output.
When GPU builds are enabled there is also version information
about CUDA SDK, nvcc, driver and runtime.
A new "Reference" build type has been added to CMake. This turns
off lots of options and should be used when generating reference
values for our regression tests.
Change-Id: I7532bebdaeb1207c4f6e69d422b0f13da83e3960
Roland Schulz [Sat, 24 Nov 2012 05:07:35 +0000 (00:07 -0500)]
Use stat for gmx_is_file. Fix get_libdir with symlinks.
In commit
4e057440520c1 I used lstat instead of stat confusing the
two. The commit tried to fix the misidentification of directories.
There is no need to distinquish between symlinks and files (and
thus break it if a binary is a symlink).
Change-Id: Ie964e826729a35f11516fb3d002ebc01cbb7a564
Roland Schulz [Fri, 23 Nov 2012 20:09:32 +0000 (21:09 +0100)]
Merge "removed group non-boneded call with verlet scheme" into release-4-6
Roland Schulz [Fri, 23 Nov 2012 20:07:44 +0000 (21:07 +0100)]
Merge "improve FindGROMACS.cmake" into release-4-6
Roland Schulz [Sun, 11 Nov 2012 20:30:50 +0000 (15:30 -0500)]
Force C++ linking of the gpu_utils
As the gpu_utils module contains some exception handling (in memtestG80)
we need to force C++ linking of this library. This allows us to remove
the --add-needed linker flag which was not the appropriate solution for
the otherwise failing linking due to the following ld error:
undefined reference to symbol '__cxa_throw@@CXXABI_1.3'
Change-Id: I333b5506abdee2f790781a6524c475c56db6eac0
Szilárd Páll [Fri, 23 Nov 2012 01:56:36 +0000 (02:56 +0100)]
Merge "Updates to CMake treatment of OpenMP" into release-4-6
Szilard Pall [Thu, 22 Nov 2012 18:03:16 +0000 (19:03 +0100)]
removed group non-boneded call with verlet scheme
With the verlet scheme non-bonded calculations are started from
do_force_cutsVERLET(), unlike in the case of group scheme which does
this in do_force_lowlevel(), one level lower. However, the conditional
that prevented do_force_lowlevel() to call do_nonbonded() with verlet
was incorrect leading to an unnecessary, but more or less harmless
do_nonbonded() call. This commit corrects the behavior and also moves
the check inside do_force_lowlevel().
Additionally, a subcounter start call was missing with GB, this has also
been corrected.
Change-Id: If593fd577a5647e6047b5698d4505c1a2d611e05
Mark Abraham [Sat, 17 Nov 2012 20:41:25 +0000 (21:41 +0100)]
Updates to CMake treatment of OpenMP
Change-Id: I369cd3466c47c7ebbad2f2b1d893112ef15581f3
Roland Schulz [Fri, 23 Nov 2012 00:11:14 +0000 (01:11 +0100)]
Merge changes I88f0dcef,I86b2a8cf,I70fb7e6d into release-4-6
* changes:
Fix for icc 13 optimization-related issue and TIP4P kernel update.
Implemented RMS-based force tolerance in gmxcheck
Fixed LJ-14 error in free energy
Erik Lindahl [Thu, 22 Nov 2012 20:24:06 +0000 (21:24 +0100)]
Fix for icc 13 optimization-related issue and TIP4P kernel update.
Worked around icc enthusiastic memory optimization in SSE4.1 kernels,
and corrected TIP4P-TIP4P RFCut kernels to also cut user-table interactions
in order to make them produce identical results to the generic
kernels.
Change-Id: I88f0dcefe5fee0e184e276c7498c50b84cb0bffa
Christoph Junghans [Thu, 22 Nov 2012 21:15:17 +0000 (14:15 -0700)]
improve FindGROMACS.cmake
* added install dirs as hints
* added code to detect gmx 4.6 beside 4.0, 4.5 and 5.0
* print version found in templates' CMakeLists.txt
Fixes #1046
Change-Id: I3ba527ab0c517d964fab06ec7f2919d10b25fdf1
Erik Lindahl [Thu, 22 Nov 2012 18:21:37 +0000 (19:21 +0100)]
Implemented RMS-based force tolerance in gmxcheck
This patch reduces the number of false force errors
in trajectory comparisions significantly by scaling
the absolute tolerance by the RMS of the force
components. In addition, this also makes the abstol
argument independent of units. This new routine is
used for forces, virials and pressure, but not
coordinates or velocities.
Change-Id: I86b2a8cfe0612a2e7ec45f425d71b501c5d333be
Erik Lindahl [Thu, 22 Nov 2012 17:28:45 +0000 (18:28 +0100)]
Fixed LJ-14 error in free energy
This bug was introduced when I implemented the new separate
1,4-evaluation of free energies, and failed to take the
now-included 6.0 & 12.0 prefactors in c6 & c12 into account.
The net effect is merely that it altered the softcore power
slightly, which caused it to deviate somewhat from the reference
value in the regression testing.
Change-Id: I70fb7e6da7186b0f10b654d060e1e1275f3676e9
Mark Abraham [Thu, 22 Nov 2012 13:42:59 +0000 (14:42 +0100)]
Speed up mdlib compilation by reordering file globs
Change-Id: I5672fe6001b19e872636a06c6ed15281e00d0ab2
Szilard Pall [Thu, 22 Nov 2012 03:33:57 +0000 (04:33 +0100)]
unset MPI detection leftover cache variables
The MPI_INFO_BIN and MPINAME_BIN variables can be left in the cache
as non-advanced variables because these are results of find_file search.
Change-Id: Id4978ab75680eab6246f25e02e3785412b6d75ac
Christoph Junghans [Tue, 20 Nov 2012 16:29:05 +0000 (17:29 +0100)]
Merge "Fix g_msd -mol" into release-4-6
Christoph Junghans [Tue, 20 Nov 2012 16:27:31 +0000 (17:27 +0100)]
Merge "Fixes bug in g_hbond that makes it produce fatal error." into release-4-5-patches
David van der Spoel [Tue, 20 Nov 2012 10:58:18 +0000 (11:58 +0100)]
Fixes bug in g_hbond that makes it produce fatal error.
Rather than crashing with a range check error when there
are no hydrogen bonds the code now prints to stderr and
continues normally.
Change-Id: Idc9fddf8bfac9989bc1aa3a9c552b08580f99949
Roland Schulz [Mon, 19 Nov 2012 21:44:15 +0000 (16:44 -0500)]
Fix CXX/C mismatch of flag/macro for gmxCFlags
Change-Id: Ieb87927e24688a29af284b46be3359bbc57d8891
Roland Schulz [Tue, 20 Nov 2012 02:17:30 +0000 (21:17 -0500)]
Merge release-4-5-patches into release-4-6
Conflicts:
src/tools/gmx_tune_pme.c
Change-Id: I924851995261a7777def8a5dea168597aabf0e0d
Roland Schulz [Mon, 19 Nov 2012 21:44:15 +0000 (16:44 -0500)]
Fix CXX/C mismatch of flag/macro for gmxCFlags
Change-Id: Ieb87927e24688a29af284b46be3359bbc57d8891
Roland Schulz [Mon, 19 Nov 2012 21:30:52 +0000 (22:30 +0100)]
Merge changes Ibc555d88,Iaf6f3051 into release-4-6
* changes:
Fix GMX_TEST_CFLAG bug with acceleration flags
Fix bugs in gmxCFlags
Mark Abraham [Mon, 19 Nov 2012 21:05:05 +0000 (22:05 +0100)]
Merge "SSE4.1 single-precision kernels" into release-4-6
Mark Abraham [Sat, 17 Nov 2012 20:40:10 +0000 (21:40 +0100)]
Minor updates to CMake usage
Change-Id: Ie917ccd041c7576afb82ddef7b82598f462c7548
Roland Schulz [Sat, 17 Nov 2012 20:00:37 +0000 (15:00 -0500)]
Add CMAKE_PREFIX_PATH to cmake-gui
CMAKE_PREFIX_PATH didn't show up in ccmake, because it wasn't in
the cache by default. Given that it is the easiest way to specify
external dependendencies it should show up. Also prior one had to go
to the advanced settings to specify the path to FFTW. Modified
the FFTW message to explain that CMAKE_PREFIX_PATH is also an
option. This makes it possible to set it (if it isn't found
automatically)without having to open the advanced settings.
Change-Id: Ib36ab004aac8f65d2a145d67b72b8c8f4fa065c8
Erik Lindahl [Thu, 15 Nov 2012 23:09:11 +0000 (00:09 +0100)]
SSE4.1 single-precision kernels
Kernels using SSE4.1 instructions on modern Intel and AMD x86 CPUs.
These are not a whole lot faster than SSE2 right now in default
interactions, but for generalized born they probably are due to
better selection instructions. Padding and other properties are
similar to the SSE2 kernels just commited.
Change-Id: I3d6c09c70d16006128320ca24079f7f3851a882e
Roland Schulz [Mon, 19 Nov 2012 14:32:40 +0000 (15:32 +0100)]
Merge "Remove double declaration in headers" into release-4-6
Szilard Pall [Thu, 15 Nov 2012 22:26:47 +0000 (23:26 +0100)]
always mark as advanced leftover FindCUDA variables
If the user turned off GMX_GPU after a failed configure pass, some
variables were still left behind. Now these variables are marked as
advanced unconditionally.
Change-Id: Ia20ad5a164b6a8b43801ad1d83bc03332da5f6c1
Roland Schulz [Sat, 17 Nov 2012 20:26:44 +0000 (15:26 -0500)]
Fix GMX_TEST_CFLAG bug with acceleration flags
If a cmake error occured (e.g. fftw not found) between a flag being
tested (e.g. -msse4.1) and the flags being set, then those flags
weren't set. Neither on the first run with the error, nor later
because in later runs GROMACS_C_FLAGS_SET would already be set.
Fixes #1037
Change-Id: Ibc555d885bab5bec04a1aa5b10f06351e6aa6f38
Roland Schulz [Sat, 17 Nov 2012 20:20:20 +0000 (15:20 -0500)]
Fix bugs in gmxCFlags
The first argument to GMX_TEST_CFLAG needs to be unique, otherwise the
test is skipped and the respective options never gets added.
Change-Id: Iaf6f30511735b5b9459520ca72ed5eda6b3b5ec5
Roland Schulz [Fri, 16 Nov 2012 22:41:48 +0000 (17:41 -0500)]
Rename remaining GMX_ACCELERATION to GMX_CPU_ACCELERATION
366c49a438150 renamed this variable but forgot these three.
Change-Id: Iad653e2deaa2fc7cb218bffab84c6833ff8b3d56
Roland Schulz [Fri, 16 Nov 2012 01:27:44 +0000 (20:27 -0500)]
Remove double declaration in headers
Change-Id: Ibaaee5b8bb8c6b3f4cf12c34efd2229f346a838f
David van der Spoel [Sat, 17 Nov 2012 07:12:14 +0000 (08:12 +0100)]
Merge "Added grompp warning" into release-4-6
David van der Spoel [Sat, 17 Nov 2012 07:04:48 +0000 (08:04 +0100)]
Merge "Remove rest of the xml support" into release-4-6
Roland Schulz [Sat, 17 Nov 2012 06:36:07 +0000 (07:36 +0100)]
Merge "Removing Zn and Ar non-OPLS atom types" into release-4-6
Mark Abraham [Wed, 5 Sep 2012 01:40:05 +0000 (11:40 +1000)]
Added grompp warning
Don't silently allow the user to combine velocity generation and an
unconstrained start.
Change-Id: I62f9f917fe583dfccdddfb5f9fad82a17e15ca25
Roland Schulz [Sat, 10 Nov 2012 19:25:26 +0000 (14:25 -0500)]
Removing Zn and Ar non-OPLS atom types
Some parameters were clearly wrong and the source of them was
not documented. They can be added back in but then the source
needs to be documented.
Add source for Fe2+.
Leaving Cu2+, Fe2+ and SI given their source is documented.
Fixes #957
Change-Id: I82a5b7ae4a54ab2aeb5690cea6256146a9819250
Christoph Junghans [Fri, 16 Nov 2012 22:06:23 +0000 (15:06 -0700)]
Remove rest of the xml support
* xml_io was removed in
bfab7b6030da6cec449429454e2fa9a720474838
Change-Id: If78d923f292cd5f547d88dfa07c42ec31a797c82
David van der Spoel [Fri, 16 Nov 2012 21:31:03 +0000 (22:31 +0100)]
Merge "Removes unused files" into release-4-6
Erik Lindahl [Tue, 13 Nov 2012 22:21:13 +0000 (23:21 +0100)]
SSE2 single-precision kernels
New single-precision x86 kernels rewritten to use intrinsics
instead of raw assembly. SSE2 is now our lowest-supported
accelerated instruction set on x86. We generate kernels for
the same interaction choices as the plain c kernels, but
have not enabled Buckingham interactions SSE kernels since
that would generate a whole lot more kernels that would only
be use in rare circumstances. The neighborsearching routine
has also been updated to optionally generate lists that
are padded up to the simd width, which is set by each
kernel when we initialize the neighborlist.
Change-Id: Ic51078e10e7f1f29af3d33e256177806ec208646
Roland Schulz [Thu, 15 Nov 2012 21:27:42 +0000 (16:27 -0500)]
Removes unused files
These files are never compiled
Change-Id: I5ccb808b4021b3c081b947ff3a559bb798babbed
Berk Hess [Wed, 14 Nov 2012 10:10:23 +0000 (11:10 +0100)]
reduced the cost of the nbnxn OpenMP nb-force reduction
The cost of the nbnxn non-bonded force reduction, used with OpenMP
on the CPU, increased linearly with the number of OpenMP threads.
Now blocks of this array are only reduced when a thread writes
forces to it.
Change-Id: I06acf772b7951ad3166d22be2e5876e3e5084bc0
Christoph Junghans [Thu, 15 Nov 2012 22:24:35 +0000 (23:24 +0100)]
Merge "Test that compiling and linking of AVX works" into release-4-6
Roland Schulz [Sat, 10 Nov 2012 12:00:52 +0000 (07:00 -0500)]
Verify that FFTW can be used with shared libraries
Fixes #740
Change-Id: If55f9bde72b1b2ce783c2a86a9bf0170a159c266
Berk Hess [Thu, 15 Nov 2012 10:19:18 +0000 (11:19 +0100)]
fixed incorrect 1-4 energies with OpenMP + energy groups
The OpenMP bonded thread data structure allocated too few energy group
elements with more than 1 energy group. This would lead to incorrect
1-4 interaction energies when atoms beyond the first energy group
were involved in 1-4 interactions (but sampling itself was correct).
Potentially this could also lead to memory corruption.
All this could only happen with more than 1 OpenMP thread.
Change-Id: Ib6b91862eaaddaafc0c609961219e01c7be0f9eb
Roland Schulz [Wed, 14 Nov 2012 18:54:12 +0000 (13:54 -0500)]
FindFFTW: Keep checking pkg_config until fftw is found
Prior pkg_config didn't work when PKG_CONFIG_PATH was changed
after initial cmake run.
Change-Id: I7c067bdb634577c7847421f187b4893aa52ff511
Berk Hess [Wed, 14 Nov 2012 15:23:59 +0000 (16:23 +0100)]
fixed nbnxn x86 SIMD non-bonded performance regression
Commit
f40969c2 broke the LJ combination detection,
which effectively made all runs use the full combination rule
matrix for x86 SIMD kernels. This is now corrected.
Change-Id: I1073801546fde23e6a53199120246697a7c61b5f
Erik Lindahl [Tue, 13 Nov 2012 14:50:03 +0000 (15:50 +0100)]
Removed some unnecessary instructions, and fixed a bug in GB kernel
The force-only kernels do not have to load all parts of the table,
which saves a few instructions. This patch also fixes a small error in the
chain-rule force introduced in the new generalized-born kernels. There
will soon be automatic tests for the GB kernels, but not today...
Change-Id: Ib9f8b2294ba98bdcbc040f6563a2889c3a9f47a0
Roland Schulz [Sun, 11 Nov 2012 22:52:17 +0000 (17:52 -0500)]
Test that compiling and linking of AVX works
Older assemblers don't have support for AVX
Related to #1021
Change-Id: If8da47f9458c592d5408c7322280ffacce81145d
Roland Schulz [Wed, 31 Oct 2012 02:50:34 +0000 (22:50 -0400)]
Allow to disable usage of rdtscp
The usage of rdtscp couldn't be overwritten by the user, which
which is a problem if the build host supports it but the execution
host doesn't. Adding flag GMX_DISTRIBUTABLE_BUILD which disables
rdtscp and can in the future be used for any other features
which are non-critical and makes binary non-distributable.
Change-Id: I14ee6874334287537dd265bc4217e07ee3c8818d
Roland Schulz [Mon, 12 Nov 2012 19:16:44 +0000 (20:16 +0100)]
Merge "Backport ThreadMPI.cmake version from master" into release-4-6
Roland Schulz [Mon, 12 Nov 2012 18:40:28 +0000 (19:40 +0100)]
Merge "nbnxn CPU force buffer reduction now uses SIMD" into release-4-6
Roland Schulz [Sun, 11 Nov 2012 00:49:40 +0000 (19:49 -0500)]
Backport ThreadMPI.cmake version from master
Allows to compile small part of ThreadMPI (e.g. for set_affinity)
Change-Id: I4b483a06fccf801399544c753487402ca5eec3a0
Berk Hess [Mon, 12 Nov 2012 15:09:22 +0000 (16:09 +0100)]
nbnxn CPU force buffer reduction now uses SIMD
The reduction of the non-bonded OpenMP force buffers on the CPU used
a pattern with a high cache-miss rate. This has been improved and
an x86 SIMD reduction function has been added. The old reduction code
has not been removed (yet), as it could be faster in some cases.
Change-Id: Icc5065b976321d34055f9b44caedf3008fe3ec58
David van der Spoel [Sun, 11 Nov 2012 12:55:17 +0000 (13:55 +0100)]
Fixes #1020 options in g_enemat
Disentangled the options for selecting energy terms.
Change-Id: I8b2979a32e75a9e6a0eb641c0965089db5318f69
Roland Schulz [Sun, 11 Nov 2012 04:49:24 +0000 (23:49 -0500)]
Fix FMA4 compile for GCC and MSVC
GCC requires -mfma4 and MSVC requires intrin.h
Fixes #1023
Change-Id: I770a9d7fc5d9b0736042ea01ed0ed0d77aac95c6
Roland Schulz [Sat, 10 Nov 2012 22:02:54 +0000 (23:02 +0100)]
Merge "Fix broken manual formatting" into release-4-6
Roland Schulz [Sat, 10 Nov 2012 21:06:28 +0000 (16:06 -0500)]
Fix g_msd -mol
Fixes #774
Change-Id: I6fa564754bcbc898a5da6428729775c669cd72d2
Mark Abraham [Sat, 10 Nov 2012 18:35:00 +0000 (19:35 +0100)]
Fix broken manual formatting
Change-Id: I7d03400c0c8b0527f2d3db185b8bd55f88cd8bba
Teemu Murtola [Sat, 10 Nov 2012 04:58:24 +0000 (06:58 +0200)]
Remove obsolete GMX_THREAD_SHM_FDECOMP.
This macro was never set, and the remaining code behind #ifdefs was
broken. The defines were removed from the kernels with the new
generator. The only place where this macro remains after this change is
in obsolete kernels, and should get removed from there as well when they
are changed to the new kernel scheme.
Change-Id: Ifea0e6669791ecf3fecc2cfdec81d068e7507c63