race condition(s) in hardware detection(?)
As noted in https://gerrit.gromacs.org/2633, there is a data race on (at least) pin_stride. Observed with non-reproducible .log file output about whether the pin stride being used is reported as being auto-selected or user-set, and also with clang TSan.
Currently blocking 4.6.4 until we know the (at least) severity of the underlying problem.
reorganized GPU detection and selection
The GPU selection has been separated from the GPU detection
and now happens after the thread-MPI threads are started.
The GPU user/auto-selected options have been removed from
gmx_hw_info_t, such that it only contains hardware info
and can be passed around as const.
As both the CPU and GPU options structs are now tMPI rank local,
tMPI thread concurrency issues are avoided.
Fixes #1334 #1359
The GPU detection is now skipped with mdrun -nb cpu
CPU acceleration binary/hardware mismatch is now only printed once
to stderr (instead of #MPI-rank times to stdout).
Removed the master_inf_t struct.