This file defines functions used by the domdec module in its initial setup phase.
- Author
- Berk Hess hess@.nosp@m.kth..nosp@m.se
|
static int | factorize (int n, int **fac, int **mfac) |
| Factorize n . More...
|
|
static gmx_bool | largest_divisor (int n) |
| Find largest divisor of n smaller than n .
|
|
static int | lcd (int n1, int n2) |
| Compute largest common divisor of n1 and n2.
|
|
static gmx_bool | fits_pme_ratio (int nrank_tot, int nrank_pme, float ratio) |
| Returns TRUE when there are enough PME ranks for the ratio.
|
|
static gmx_bool | fits_pp_pme_perf (int ntot, int npme, float ratio) |
| Returns TRUE when npme out of ntot ranks doing PME is expected to give reasonable performance.
|
|
static int | guess_npme (FILE *fplog, const gmx_mtop_t *mtop, const t_inputrec *ir, const matrix box, int nrank_tot) |
| Make a guess for the number of PME ranks to use.
|
|
static int | div_up (int n, int f) |
| Return n divided by f rounded up to the next integer.
|
|
real | comm_box_frac (const ivec dd_nc, real cutoff, const gmx_ddbox_t *ddbox) |
| Returns the volume fraction of the system that is communicated.
|
|
static gmx_bool | inhomogeneous_z (const t_inputrec *ir) |
| Return whether the DD inhomogeneous in the z direction.
|
|
static float | comm_pme_cost_vol (int npme, int a, int b, int c) |
| Estimate cost of PME FFT communication. More...
|
|
static float | comm_cost_est (real limit, real cutoff, const matrix box, const gmx_ddbox_t *ddbox, int natoms, const t_inputrec *ir, float pbcdxr, int npme_tot, ivec nc) |
| Estimate cost of communication for a possible domain decomposition.
|
|
static void | assign_factors (const gmx_domdec_t *dd, real limit, real cutoff, const matrix box, const gmx_ddbox_t *ddbox, int natoms, const t_inputrec *ir, float pbcdxr, int npme, int ndiv, int *div, int *mdiv, ivec ir_try, ivec opt) |
| Assign penalty factors to possible domain decompositions, based on the estimated communication costs.
|
|
static real | optimize_ncells (FILE *fplog, int nnodes_tot, int npme_only, gmx_bool bDynLoadBal, real dlb_scale, const gmx_mtop_t *mtop, const matrix box, const gmx_ddbox_t *ddbox, const t_inputrec *ir, gmx_domdec_t *dd, real cellsize_limit, real cutoff, gmx_bool bInterCGBondeds, ivec nc) |
| Determine the optimal distribution of DD cells for the simulation system and number of MPI ranks.
|
|
real | dd_choose_grid (FILE *fplog, t_commrec *cr, gmx_domdec_t *dd, const t_inputrec *ir, const gmx_mtop_t *mtop, const matrix box, const gmx_ddbox_t *ddbox, int nPmeRanks, gmx_bool bDynLoadBal, real dlb_scale, real cellsize_limit, real cutoff_dd, gmx_bool bInterCGBondeds) |
| Determines the optimal DD cell setup dd->nc and possibly npmenodes for the system. More...
|
|