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
Remove CVS files

Change-Id: I3b9f8b1af039aa7c82a9a8a40cc24b23e6f542ef
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
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
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
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
Print error if no thread support is available

Change-Id: I1e1ad0553207308a0db3da5d7f059f8ea22b00c3
Merge changes I9b865c4c,Ib709290e into release-4-6

* changes:
  use tMPI API for thread affinity setting
  Fixed Windows tMPI_Thread_self().
Fix CPACK_SOURCE_IGNORE_FILES

For files $ should be used but for directories / needs to be
used to match files in the folder and subfolders.

Change-Id: Ie328221517e7b55f727bf239249070ba090b52d6
Merge "extended nbnxn x86 SIMD kernel blendv support" into release-4-6
Fix: pthread variables were overwritten by gmxManageGPU

ThreadMPI.cmake is now always included (used for setaffinity).
The extra include, with the TEST_TMPI_ATOMICS_ONLY variable
set, overwrote required variables.

Change-Id: I2b00d5139e8c4ed55226ff4613ad252aacabbdac
Add option to internally build FFTW if selected

Fixes #1031

Change-Id: If9d7cee68f4ced26e931b9a7c5595df47185bb66
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
Fix cpack src ignore rule

Without excaping and $ .git applied to xdlgitem.c

Change-Id: If6674303dde356ee4ceef62b712aa38709e5aee0
Merge "Remove CVS files" into release-4-6
Merge "Fix cpack src ignore rule" into release-4-6
Merge "Fix Window-GPU build" into release-4-6
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
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
Double precision SSE2 kernels

For nonbonded interactions with group cutoff scheme.

Change-Id: I2037f94c24126f103fa232e77783775a62821f54