Reorder code before thread-MPI spawns threads
commit96d28d6b043c74901adbb4634b2eab6134f01bae
authorMark Abraham <mark.j.abraham@gmail.com>
Thu, 23 May 2019 18:07:27 +0000 (23 20:07 +0200)
committerMark Abraham <mark.j.abraham@gmail.com>
Fri, 24 May 2019 14:43:26 +0000 (24 16:43 +0200)
treefa42ec9b9ee7169134664f334b48b95571250f2e
parentce1baa0667d1fd57ebf7125d279543559457715e
Reorder code before thread-MPI spawns threads

gmx_check_thread_affinity_set was called before thread-MPI threads
were spawned, because originally that was necessary. But the intended
functionality is to provide feedback to users about whether thread
affinity was set by the OpenMP library or something else. Nothing else
uses the thread_affinity value in the meantime. So, it only needs to
be called just before OpenMP is initialized. The reordering makes
clear that some reduction code within this function only needs to run
with real MPI.

check_and_update_hw_opt_1 does modify hw_opt, but none of the relevant
variables were accessed in the preceding code, so the reordering is
safe. It now takes a boolean rather than a handle to t_commrec, which
decreases the code coupling and will shortly be useful. A check for
mdrun -ntmpi -npme has been moved into this routine.

check_and_update_hw_opt_2 only related to the group scheme and can
be removed.

The fatal error for group-scheme .tpr files can safely be moved
later, alongside other code specific to the Verlet scheme.

Reruns can safely clear the velocity vector later.

The log file makes a request to cite GROMACS papers, which is now
implemented in a simple function elsewhere.

Change-Id: I1e5990656c391da81aec215f86b94efc752002d4
src/gromacs/mdrun/runner.cpp
src/gromacs/mdrunutility/threadaffinity.cpp
src/gromacs/taskassignment/resourcedivision.cpp
src/gromacs/taskassignment/resourcedivision.h
src/gromacs/utility/pleasecite.cpp
src/gromacs/utility/pleasecite.h