Decouple task assignment from task execution
authorMark Abraham <mark.j.abraham@gmail.com>
Fri, 4 Aug 2017 11:52:33 +0000 (13:52 +0200)
committerMark Abraham <mark.j.abraham@gmail.com>
Sun, 6 Aug 2017 15:58:05 +0000 (17:58 +0200)
commitdd9859930822a97cb9b33ba116821e6940329675
tree8d7cad9544b51156b221f8349b0b6fce5b360311
parentd5bc76f4b17bd781d9bf943dc4b2ce15476c7393
Decouple task assignment from task execution

Code that needs to run on a GPU does not also need to know about the
code and data structures that underpin task assignment.  The outcome
of task assignment is the information about which GPU to use, and it
is simple and effective to give just that result to the code that
needs it.

Simplifies t_forcerec.

Added more const correctness for gmx_device_info_t pointers.

Change-Id: I094c19e08be73af998bd287e43d5c2b6e5969a60
18 files changed:
src/gromacs/domdec/domdec.cpp
src/gromacs/domdec/domdec.h
src/gromacs/gpu_utils/gpu_utils.cu
src/gromacs/gpu_utils/gpu_utils.h
src/gromacs/gpu_utils/gpu_utils_ocl.cpp
src/gromacs/gpu_utils/ocl_compiler.h
src/gromacs/mdlib/force.h
src/gromacs/mdlib/forcerec.cpp
src/gromacs/mdlib/forcerec.h
src/gromacs/mdlib/nbnxn_cuda/nbnxn_cuda.cu
src/gromacs/mdlib/nbnxn_cuda/nbnxn_cuda_data_mgmt.cu
src/gromacs/mdlib/nbnxn_cuda/nbnxn_cuda_types.h
src/gromacs/mdlib/nbnxn_gpu_data_mgmt.h
src/gromacs/mdlib/nbnxn_ocl/nbnxn_ocl.cpp
src/gromacs/mdlib/nbnxn_ocl/nbnxn_ocl_data_mgmt.cpp
src/gromacs/mdlib/nbnxn_ocl/nbnxn_ocl_types.h
src/gromacs/mdtypes/forcerec.h
src/programs/mdrun/runner.cpp