Introduce PpForceWorkload
commit6e2042788e22f2fa55b85b08bd3acf4afea60e0b
authorMark Abraham <mark.j.abraham@gmail.com>
Thu, 1 Nov 2018 11:49:03 +0000 (1 12:49 +0100)
committerSzilárd Páll <pall.szilard@gmail.com>
Thu, 22 Nov 2018 18:39:25 +0000 (22 19:39 +0100)
treef80b8ef430db66fda13354dc98f49dd050a9392b
parent592a5357df4d94bf9189f03bf5b4d37086ecb22a
Introduce PpForceWorkload

Assigns responsibility for knowing what work is required for the force
calculation of an MD step to a single object. Moved actual control of
executing any necessary CUDA bonded work to the new schedule
object. Changed low-level routines to assert when invalid calls are
made, because only one place should control whether work is done.

This prepares for making GpuBondedLists an opaque type, when
bonded_gpu_have_interactions will not be able to be an inline
function.

Refs #2724, #2574

Change-Id: Ie59b790c54170692b0221f5eb3812643ba6f61d6
13 files changed:
src/gromacs/listed-forces/bonded.cu
src/gromacs/mdlib/force.h
src/gromacs/mdlib/ppforceworkload.h [new file with mode: 0644]
src/gromacs/mdlib/shellfc.cpp
src/gromacs/mdlib/shellfc.h
src/gromacs/mdlib/sim_util.cpp
src/gromacs/mdrun/integrator.h
src/gromacs/mdrun/md.cpp
src/gromacs/mdrun/mimic.cpp
src/gromacs/mdrun/minimize.cpp
src/gromacs/mdrun/rerun.cpp
src/gromacs/mdrun/runner.cpp
src/gromacs/mdrun/tpi.cpp