Gromacs
2025-dev-20240910-a7e2421
|
Functions | |
float | encodedValue (const int sendRank, const int atomNumber, const int spatial3dIndex) |
Get encoded numerical value for sending rank, atom number and spatial 3D index. More... | |
void | initHaloData (RVec *x, const int numHomeAtoms, const int numAtomsTotal) |
Initialize halo array. More... | |
void | gpuHalo (gmx_domdec_t *dd, matrix box, HostVector< RVec > *h_x, int numAtomsTotal) |
Perform GPU halo exchange, including required setup and data transfers. More... | |
void | define1dRankTopology (gmx_domdec_t *dd) |
Define 1D rank topology with 4 MPI tasks. More... | |
void | define2dRankTopology (gmx_domdec_t *dd) |
Define 2D rank topology with 4 MPI tasks. More... | |
void | define1dHaloWith1Pulse (gmx_domdec_t *dd, std::vector< gmx_domdec_ind_t > *indvec) |
Define a 1D halo with 1 pulses. More... | |
void | define1dHaloWith2Pulses (gmx_domdec_t *dd, std::vector< gmx_domdec_ind_t > *indvec) |
Define a 1D halo with 2 pulses. More... | |
void | define2dHaloWith1PulseInEachDim (gmx_domdec_t *dd, std::vector< gmx_domdec_ind_t > *indvec) |
Define a 2D halo with 1 pulse in each dimension. More... | |
void | define2dHaloWith2PulsesInDim1 (gmx_domdec_t *dd, std::vector< gmx_domdec_ind_t > *indvec) |
Define a 2D halo with 2 pulses in the first dimension. More... | |
void | checkResults1dHaloWith1Pulse (const RVec *x, const gmx_domdec_t *dd, const int numHomeAtoms) |
Check results for above-defined 1D halo with 1 pulse. More... | |
void | checkResults1dHaloWith2Pulses (const RVec *x, const gmx_domdec_t *dd, const int numHomeAtoms) |
Check results for above-defined 1D halo with 2 pulses. More... | |
void | checkResults2dHaloWith1PulseInEachDim (const RVec *x, const gmx_domdec_t *dd, const int numHomeAtoms) |
Check results for above-defined 2D halo with 1 pulse in each dimension. More... | |
void | checkResults2dHaloWith2PulsesInDim1 (const RVec *x, const gmx_domdec_t *dd, const int numHomeAtoms) |
Check results for above-defined 2D halo with 2 pulses in the first dimension. More... | |
void gmx::test::anonymous_namespace{haloexchange_mpi.cpp}::checkResults1dHaloWith1Pulse | ( | const RVec * | x, |
const gmx_domdec_t * | dd, | ||
const int | numHomeAtoms | ||
) |
Check results for above-defined 1D halo with 1 pulse.
[in] | x | Atom coordinate data array |
[in] | dd | Domain decomposition object |
[in] | numHomeAtoms | Number of home atoms |
void gmx::test::anonymous_namespace{haloexchange_mpi.cpp}::checkResults1dHaloWith2Pulses | ( | const RVec * | x, |
const gmx_domdec_t * | dd, | ||
const int | numHomeAtoms | ||
) |
Check results for above-defined 1D halo with 2 pulses.
[in] | x | Atom coordinate data array |
[in] | dd | Domain decomposition object |
[in] | numHomeAtoms | Number of home atoms |
void gmx::test::anonymous_namespace{haloexchange_mpi.cpp}::checkResults2dHaloWith1PulseInEachDim | ( | const RVec * | x, |
const gmx_domdec_t * | dd, | ||
const int | numHomeAtoms | ||
) |
Check results for above-defined 2D halo with 1 pulse in each dimension.
[in] | x | Atom coordinate data array |
[in] | dd | Domain decomposition object |
[in] | numHomeAtoms | Number of home atoms |
void gmx::test::anonymous_namespace{haloexchange_mpi.cpp}::checkResults2dHaloWith2PulsesInDim1 | ( | const RVec * | x, |
const gmx_domdec_t * | dd, | ||
const int | numHomeAtoms | ||
) |
Check results for above-defined 2D halo with 2 pulses in the first dimension.
[in] | x | Atom coordinate data array |
[in] | dd | Domain decomposition object |
[in] | numHomeAtoms | Number of home atoms |
void gmx::test::anonymous_namespace{haloexchange_mpi.cpp}::define1dHaloWith1Pulse | ( | gmx_domdec_t * | dd, |
std::vector< gmx_domdec_ind_t > * | indvec | ||
) |
Define a 1D halo with 1 pulses.
[in] | dd | Domain decomposition object |
[in] | indvec | Vector of index vectors |
void gmx::test::anonymous_namespace{haloexchange_mpi.cpp}::define1dHaloWith2Pulses | ( | gmx_domdec_t * | dd, |
std::vector< gmx_domdec_ind_t > * | indvec | ||
) |
Define a 1D halo with 2 pulses.
[in] | dd | Domain decomposition object |
[in] | indvec | Vector of index vectors |
void gmx::test::anonymous_namespace{haloexchange_mpi.cpp}::define1dRankTopology | ( | gmx_domdec_t * | dd | ) |
Define 1D rank topology with 4 MPI tasks.
[in] | dd | Domain decomposition object |
void gmx::test::anonymous_namespace{haloexchange_mpi.cpp}::define2dHaloWith1PulseInEachDim | ( | gmx_domdec_t * | dd, |
std::vector< gmx_domdec_ind_t > * | indvec | ||
) |
Define a 2D halo with 1 pulse in each dimension.
[in] | dd | Domain decomposition object |
[in] | indvec | Vector of index vectors |
void gmx::test::anonymous_namespace{haloexchange_mpi.cpp}::define2dHaloWith2PulsesInDim1 | ( | gmx_domdec_t * | dd, |
std::vector< gmx_domdec_ind_t > * | indvec | ||
) |
Define a 2D halo with 2 pulses in the first dimension.
[in] | dd | Domain decomposition object |
[in] | indvec | Vector of index vectors |
void gmx::test::anonymous_namespace{haloexchange_mpi.cpp}::define2dRankTopology | ( | gmx_domdec_t * | dd | ) |
Define 2D rank topology with 4 MPI tasks.
| 2 3 |
[in] | dd | Domain decomposition object |
float gmx::test::anonymous_namespace{haloexchange_mpi.cpp}::encodedValue | ( | const int | sendRank, |
const int | atomNumber, | ||
const int | spatial3dIndex | ||
) |
Get encoded numerical value for sending rank, atom number and spatial 3D index.
[in] | sendRank | MPI rank of sender |
[in] | atomNumber | Atom number |
[in] | spatial3dIndex | Spatial 3D Index |
void gmx::test::anonymous_namespace{haloexchange_mpi.cpp}::gpuHalo | ( | gmx_domdec_t * | dd, |
matrix | box, | ||
HostVector< RVec > * | h_x, | ||
int | numAtomsTotal | ||
) |
Perform GPU halo exchange, including required setup and data transfers.
[in] | dd | Domain decomposition object |
[in] | box | Box matrix |
[in] | h_x | Atom coordinate data array on host |
[in] | numAtomsTotal | Total number of atoms, including halo |
void gmx::test::anonymous_namespace{haloexchange_mpi.cpp}::initHaloData | ( | RVec * | x, |
const int | numHomeAtoms, | ||
const int | numAtomsTotal | ||
) |
Initialize halo array.
[in] | x | Atom coordinate data array |
[in] | numHomeAtoms | Number of home atoms |
[in] | numAtomsTotal | Total number of atoms, including halo |