Remove use of interaction_mask_indices on BG/Q
authorMark Abraham <mark.j.abraham@gmail.com>
Wed, 12 Nov 2014 02:41:15 +0000 (02:41 +0000)
committerGerrit Code Review <gerrit@gerrit.gromacs.org>
Thu, 27 Nov 2014 18:17:45 +0000 (19:17 +0100)
commita8e3a6bcd9d2eb437f5c2e4a925c06e9e869dd3b
treeb9a72fb535edef0ac09eda8ad8e66ff97bee40d5
parent66de73c59e4e8ce70359679cc6aa9a6466aef39f
Remove use of interaction_mask_indices on BG/Q

This field was degrading cache performance ~1% on x86. It probably
made little difference on BG/Q, because the extra integer operations
can use the second instruction-issue port, assuming the use of OpenMP
to use more than one hardware thread per core. Overall, this code is
about 1% faster on BG/Q.

Minor fix to the gmx_load_simd_4xn_interactions() function that looks
up the exclusion masks, so that new non-x86 platforms won't silently
fail for want of an implementation of this function.

Minor simplication to always pass simd_interaction_indices to
gmx_load_simd_4xn_interactions(), since it is only used on BG/Q and
then it is non-null.

Change-Id: I140a11607810e9cf08b702cae0b48426c3592fec
src/gromacs/legacyheaders/types/nbnxn_pairlist.h
src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_common.h
src/gromacs/mdlib/nbnxn_kernels/simd_4xn/nbnxn_kernel_simd_4xn_inner.h
src/gromacs/mdlib/nbnxn_search.c
src/gromacs/mdlib/nbnxn_search_simd_4xn.h