Restructure the load balancing timing
commit0245e6d804bc5e2170b30a7ca3d54d39da04106d
authorBerk Hess <hess@kth.se>
Tue, 4 Oct 2016 09:29:51 +0000 (4 11:29 +0200)
committerSzilárd Páll <pall.szilard@gmail.com>
Sun, 9 Jul 2017 21:12:27 +0000 (9 23:12 +0200)
tree10a1a2cef30a476a9bb4a69b48d5909d45cfb3ad
parentbb934c6b438b3314cbacc2627c8e3af51b533697
Restructure the load balancing timing

The load balancing region is now set by a (variable) start and end
point. This is much simpler than the tedious addition of timings of
many small regions during the force communication over multiple files.
The disadvantage of the current implementation is that one needs to
place a call to ddReopenBalanceRegionCpu() after every communication
call that can occur in the balancing region.
This change should avoid instabilities in DLB due to e.g. more time
being measured, but also available, when using GPUs and ranks with
less load starting earlier due to the constrains finishing earlier.

Change-Id: Idf73c3367adc269def533dfabf27df2ba4f6834f
19 files changed:
src/gromacs/domdec/dlbtiming.cpp [new file with mode: 0644]
src/gromacs/domdec/dlbtiming.h [new file with mode: 0644]
src/gromacs/domdec/domdec.cpp
src/gromacs/domdec/domdec.h
src/gromacs/domdec/domdec_constraints.cpp
src/gromacs/domdec/domdec_internal.h
src/gromacs/domdec/domdec_vsite.cpp
src/gromacs/mdlib/force.cpp
src/gromacs/mdlib/force.h
src/gromacs/mdlib/md_support.cpp
src/gromacs/mdlib/minimize.cpp
src/gromacs/mdlib/shellfc.cpp
src/gromacs/mdlib/shellfc.h
src/gromacs/mdlib/sim_util.cpp
src/gromacs/mdlib/tpi.cpp
src/gromacs/mdlib/vsite.cpp
src/gromacs/pulling/pull_rotation.cpp
src/gromacs/pulling/pull_rotation.h
src/programs/mdrun/md.cpp