Gromacs  2024.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Files
Spatial domain decomposition (for parallelization over MPI)
+ Collaboration diagram for Spatial domain decomposition (for parallelization over MPI):

Description

Manages the decomposition of the simulation volume over MPI ranks to try to distribute work evenly with minimal communication overheads.

Todo:
Get domdec stuff out of mdtypes/commrec.h
Author
Berk Hess hess@.nosp@m.kth..nosp@m.se

Classes

class  gmx::LocalAtomSet
 A local atom set collects local, global and collective indices of the home atoms on a rank. The indices of the home atoms are automatically updated during domain decomposition, thus gmx::LocalAtomSet::localIndex enables iteration over local atoms properties like coordinates or forces. TODO: add a LocalAtomSet iterator. More...
 
class  gmx::LocalAtomSetManager
 Hands out handles to local atom set indices and triggers index recalculation for all sets upon domain decomposition if run in parallel. More...
 

Files

file  builder.h
 This file declares a builder class for the manager of domain decomposition.
 
file  collect.h
 Declares functions to collect state data to the main rank.
 
file  computemultibodycutoffs.h
 This file declares the function for computing the required cutoff distance for inter-domain multi-body interactions, when those exist.
 
file  dlb.h
 This file declares functions to interact with the dynamic load balancing machinery.
 
file  dlbtiming.h
 This file declares functions for timing the load imbalance due to domain decomposition.
 
file  domdec.h
 This file declares functions for mdrun to call to manage the details of its domain decomposition.
 
file  domdec_network.h
 This file declares functions for (mostly) the domdec module to use MPI functionality.
 
file  domdec_struct.h
 Declares structures related to domain decomposition.
 
file  ga2la.h
 Defines structures and functions for mapping from global to local atom indices. The functions are performance critical and should be inlined.
 
file  gpuhaloexchange.h
 Declaration of GPU halo exchange.
 
file  hashedmap.h
 Defines structures and functions for mapping from keys to entries indices using a hash table. The functions are performance critical and should be inlined.
 
file  localatomset.h
 Declares gmx::LocalAtomSet.
 
file  localatomsetmanager.h
 Declares gmx::LocalAtomSetManager.
 
file  localtopology.h
 This file makes declarations used for building the local topology.
 
file  localtopologychecker.h
 This file declares functionality for checking whether local topologies describe all bonded interactions.
 
 
file  mdsetup.h
 Contains functions relevant to simulation setup in MD drivers.
 
file  options.h
 This file declares command-line options for mdrun related to domain decomposition.
 
file  partition.h
 This file declares functions for mdrun to call to make a new domain decomposition, and check it.
 
file  reversetopology.h
 This file makes declarations used for building the reverse topology.