thread affinity now uses some topology information
authorBerk Hess <hess@kth.se>
Tue, 15 Jan 2013 09:29:43 +0000 (10:29 +0100)
committerGerrit Code Review <gerrit@gerrit.gromacs.org>
Fri, 18 Jan 2013 20:21:54 +0000 (21:21 +0100)
commit4bebcd8fa116dd7c1856bb166ff5856f265061a5
treefa28640208136c98ea6fa56e55dcebb61427bc6a
parent95761d63fb705b4334acbe2ce6ae2f384b4bcadb
thread affinity now uses some topology information

The order of logical cores on x86 is hardware and software dependent.
The cpuid topology reports this and this information is now used.
The mdrun -pinht option is generalized for SMT to -pinstride.
The mdrun -pinoffset option is now in logical (iso phyiscal) cores.
Thread-MPI no longer sets affinity, it's now all done in one place.
The option -pin is now an enum, default auto: only on when using all
cores and when no external affinity has been set.
A big NOTE is printed with auto when no pinning is used.
Option -pin on can now override thread affinity set outside mdrun.
Fixes #1122
All thread affinity code has been moved from runner.c to
gmx_thread_affinity.c.
Updated the mdrun manual for pinning also active without OpenMP.

Change-Id: Ibf0fe5882688de80c223640502c68e6170d4d044
include/gmx_thread_affinity.h [new file with mode: 0644]
include/mdrun.h
src/gmxlib/gmx_omp.c
src/gmxlib/gmx_thread_affinity.c [new file with mode: 0644]
src/kernel/mdrun.c
src/kernel/runner.c