Project

General

Profile

Feature #2574

iForceSchedule Abstraction

Added by Prashanth Kanduri over 1 year ago. Updated 7 months ago.

Status:
New
Priority:
Normal
Category:
core library
Target version:
Difficulty:
uncategorized
Close

Description

The [WIP‘ patch (https://gerrit.gromacs.org/#/c/8088/) aims to introduce key changes in GROMACS with two main objectives:

  1. 1. Expose GROMACS's high performance force-calculators outside of GROMACS (gmx-lib)
  1. 2. Modularize performance-critical components (Non Bonded Interactions)

More detailed overview about the goals can be seen in the attached poster.

poster.pdf (10.8 MB) poster.pdf Proposal Overview Prashanth Kanduri, 07/16/2018 03:30 PM
md.png (60.9 KB) md.png Prashanth Kanduri, 07/25/2018 11:26 AM

Related issues

Related to GROMACS - Feature #2585: Infrastructure supporting external APIResolved
Related to GROMACS - Task #2623: Allow extensible MDModules and forceProviders.Resolved

Associated revisions

Revision 9864b201 (diff)
Added by Eric Irrgang about 1 year ago

Allow extensible MDModules and forceProviders.

supports gmxapi milestone 6, described at #2585.

MDModules::Impl gets a std::vector for (shared) ownership of objects
providing the IMDModule interface. An add() method is added to the
MDModules public member functions, but the binding protocols are
separated into separate issues to allow minimal changes and varying
dependencies on other pending changes.

Relates to #1972, #2229, #2492, #2574, #2590.

Refs #2623

Change-Id: Ibb16d1453003213a49622810ed8bad4ed4b06e2d

Revision 6e204278 (diff)
Added by Mark Abraham 11 months ago

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

Revision 01288be2 (diff)
Added by Prashanth Kanduri 8 months ago

Moving do_pbc_mtop(...) functions to pbcutils from mdlib

Another patch to clean up some functions within sim_util
to ensure that it contains only those methods relevant to
force calculations.

This is one in a series of patches for introducing a separate
force_schedule module.

Change-Id: I4922f714dda3d423b14c2d1393cdac53941aa608
Related: #2574

Revision 08a5681c (diff)
Added by Prashanth Kanduri 8 months ago

Moving finish_run(...) to runner.cpp

This is another patch in the cleaning efforts of sim_util.

The idea is to only have functions relevant to the force
schedules there so that it becomes easy to move it into
its own module with minimal merging pains.

Change-Id: I92d6aef805cacf7d183a5581336affd9ee8d66a7
Related: #2574

Revision e99220bf (diff)
Added by Prashanth Kanduri 7 months ago

Moving do_constraints_first(...) to constr.h

This is another patch in the cleaning efforts of sim_util.

The idea is to only have functions relevant to the force
schedules there so that it becomes easy to move it into
its own module with minimal merging pains.

Change-Id: Ic311bd9afe8baddc0589f368ebf464f1699589dc
Related: #2574

Revision 493c83de (diff)
Added by Prashanth Kanduri 7 months ago

Move initialize_lambdas(...) to state

This is another patch in the cleaning efforts of sim_util.

The idea is to only have functions relevant to the force
schedules there so that it becomes easy to move it into
its own module with minimal merging pains.

Change-Id: I270e75126b6ec3aa3cf194e92e7589d713ac6bcd
Related: #2574

Revision 607219fd (diff)
Added by Prashanth Kanduri 7 months ago

Move stat function declarations to a new stat.h

This is another patch in the cleaning efforts of sim_util.

The idea is to only have functions relevant to the force
schedules there so that it becomes easy to move it into
its own module with minimal merging pains.

Change-Id: I8decd93e02cfdda79f131171d2b91be095cc77e0
Related: #2574

Revision f156f692 (diff)
Added by Prashanth Kanduri 7 months ago

Getting rid of use_GPU(nbv) function

Using the useGPU() function build within nonbonded_verlet_t
struct

This is another patch in the cleaning efforts of sim_util.

The idea is to only have functions relevant to the force
schedules there so that it becomes easy to move it into
its own module with minimal merging pains.

Related: #2574

Change-Id: I0e0d1dc74aa18032dfb4ab84f3badbb83ef0365b

Revision 7e1a2085 (diff)
Added by Prashanth Kanduri 7 months ago

Moving put_atoms_in_box_omp() to pbc.h

This is another patch in the cleaning efforts of sim_util.
It finally removes sim_util.h

The idea is to only have functions relevant to the force
schedules there so that it becomes easy to move it into
its own module with minimal merging pains.

Related: #2574

Change-Id: Ib0c2dbc21bd31ee272888d3fa25a3c0ce65b5478

Revision e03f7387 (diff)
Added by Prashanth Kanduri 6 months ago

Move shellfc code to the mdrun module

This code was previously in mdlib and made use of the force
calculation routines. The introduction of the forceschedules
module (Patch 9363) introduces a cyclic dependency.

Therefore, this clean up is important to ensure that all
users of the Force Schedules are present in a single module.

Related: #2574, #2774

Change-Id: I19563f0f6e7985d198a2497a799c5377b24a1419

History

#1 Updated by Gerrit Code Review Bot over 1 year ago

Gerrit received a related patchset '2' for Issue #2574.
Uploader: Joe Jordan ()
Change-Id: gromacs~master~Ia1b0f1046edc1579e4851eaddea3621b9008d251
Gerrit URL: https://gerrit.gromacs.org/8088

#2 Updated by Prashanth Kanduri about 1 year ago

A basic interaction diagram regarding the execution flow.

#3 Updated by Eric Irrgang about 1 year ago

  • Related to Feature #2585: Infrastructure supporting external API added

#4 Updated by Gerrit Code Review Bot about 1 year ago

Gerrit received a related patchset '1' for Issue #2574.
Uploader: M. Eric Irrgang ()
Change-Id: gromacs~master~Ibb16d1453003213a49622810ed8bad4ed4b06e2d
Gerrit URL: https://gerrit.gromacs.org/8219

#5 Updated by Eric Irrgang about 1 year ago

  • Related to Task #2623: Allow extensible MDModules and forceProviders. added

#6 Updated by Gerrit Code Review Bot 12 months ago

Gerrit received a related patchset '1' for Issue #2574.
Uploader: Mark Abraham ()
Change-Id: gromacs~release-2019~Ie59b790c54170692b0221f5eb3812643ba6f61d6
Gerrit URL: https://gerrit.gromacs.org/8641

#7 Updated by Gerrit Code Review Bot 8 months ago

Gerrit received a related patchset '3' for Issue #2574.
Uploader: Prashanth Kanduri ()
Change-Id: gromacs~master~I7113b8cdef25d12d4d866ac1c1a2b7e198d49d95
Gerrit URL: https://gerrit.gromacs.org/9195

#8 Updated by Gerrit Code Review Bot 8 months ago

Gerrit received a related patchset '1' for Issue #2574.
Uploader: Mark Abraham ()
Change-Id: gromacs~master~Ic05633af3a723436fb95bed530f787698f6a4bb7
Gerrit URL: https://gerrit.gromacs.org/9211

#9 Updated by Gerrit Code Review Bot 8 months ago

Gerrit received a related patchset '1' for Issue #2574.
Uploader: Prashanth Kanduri ()
Change-Id: gromacs~master~I92d6aef805cacf7d183a5581336affd9ee8d66a7
Gerrit URL: https://gerrit.gromacs.org/9220

#10 Updated by Gerrit Code Review Bot 8 months ago

Gerrit received a related patchset '1' for Issue #2574.
Uploader: Prashanth Kanduri ()
Change-Id: gromacs~master~I4922f714dda3d423b14c2d1393cdac53941aa608
Gerrit URL: https://gerrit.gromacs.org/9222

#11 Updated by Gerrit Code Review Bot 8 months ago

Gerrit received a related patchset '1' for Issue #2574.
Uploader: Prashanth Kanduri ()
Change-Id: gromacs~master~I6a7989685b584f121c0cdfaffae444eb2e4e090c
Gerrit URL: https://gerrit.gromacs.org/9228

#12 Updated by Gerrit Code Review Bot 8 months ago

Gerrit received a related patchset '1' for Issue #2574.
Uploader: Prashanth Kanduri ()
Change-Id: gromacs~master~Ic311bd9afe8baddc0589f368ebf464f1699589dc
Gerrit URL: https://gerrit.gromacs.org/9242

#13 Updated by Gerrit Code Review Bot 8 months ago

Gerrit received a related patchset '1' for Issue #2574.
Uploader: Prashanth Kanduri ()
Change-Id: gromacs~master~I270e75126b6ec3aa3cf194e92e7589d713ac6bcd
Gerrit URL: https://gerrit.gromacs.org/9251

#14 Updated by Gerrit Code Review Bot 7 months ago

Gerrit received a related patchset '1' for Issue #2574.
Uploader: Prashanth Kanduri ()
Change-Id: gromacs~master~Ib0c2dbc21bd31ee272888d3fa25a3c0ce65b5478
Gerrit URL: https://gerrit.gromacs.org/9337

#15 Updated by Gerrit Code Review Bot 7 months ago

Gerrit received a related patchset '1' for Issue #2574.
Uploader: Prashanth Kanduri ()
Change-Id: gromacs~master~I0e0d1dc74aa18032dfb4ab84f3badbb83ef0365b
Gerrit URL: https://gerrit.gromacs.org/9345

#16 Updated by Gerrit Code Review Bot 7 months ago

Gerrit received a related patchset '1' for Issue #2574.
Uploader: Prashanth Kanduri ()
Change-Id: gromacs~master~I8decd93e02cfdda79f131171d2b91be095cc77e0
Gerrit URL: https://gerrit.gromacs.org/9346

#17 Updated by Gerrit Code Review Bot 7 months ago

Gerrit received a related patchset '1' for Issue #2574.
Uploader: Prashanth Kanduri ()
Change-Id: gromacs~master~Ib3b25f5cca8525f2750b5ae5f76d724b9e407e14
Gerrit URL: https://gerrit.gromacs.org/9363

#18 Updated by Gerrit Code Review Bot 7 months ago

Gerrit received a related patchset '1' for Issue #2574.
Uploader: Prashanth Kanduri ()
Change-Id: gromacs~master~I19563f0f6e7985d198a2497a799c5377b24a1419
Gerrit URL: https://gerrit.gromacs.org/9368

Also available in: Atom PDF