![]() |
(git:b77b4be)
|
Routines for optimizing load balance between processes in HFX calculations. More...
Functions/Subroutines | |
subroutine, public | hfx_load_balance (x_data, eps_schwarz, particle_set, max_set, para_env, coeffs_set, coeffs_kind, is_assoc_atomic_block_global, do_periodic, load_balance_parameter, kind_of, basis_parameter, pmax_set, pmax_atom, i_thread, n_threads, cell, do_p_screening, map_atom_to_kind_atom, nkind, eval_type, pmax_block, use_virial) |
Distributes the computation of eri's to all available processes. | |
subroutine, public | hfx_update_load_balance (x_data, para_env, load_balance_parameter, i_thread, n_threads, eval_type) |
Cheap way of redistributing the eri's. | |
integer(kind=int_8) function, public | cost_model (nsa, nsb, nsc, nsd, npgfa, npgfb, npgfc, npgfd, ratio, p1, p2, p3) |
estimates the cost of a set quartet with info available at load balance time i.e. without much info on the primitives primitives | |
subroutine, public | collect_load_balance_info (para_env, x_data, iw, n_threads, i_thread, eval_type) |
... | |
Variables | |
real(kind=dp), dimension(12), parameter, public | p1_energy = (/2.9461408209700424_dp, 1.0624718662999657_dp, -1.91570128356921242E-002_dp, -1.6668495454436603_dp, 1.7512639006523709_dp, -9.76074323945336081E-002_dp, 2.6230786127311889_dp, -0.31870737623014189_dp, 7.9588203912690973_dp, 1.8331423413134813_dp, -0.15427618665346299_dp, 0.19749436090711650_dp/) |
real(kind=dp), dimension(12), parameter, public | p2_energy = (/2.3104682960662593_dp, 1.8744052737304417_dp, -9.36564055598656797E-002_dp, 0.64284973765086939_dp, 1.0137565430060556_dp, -6.80088178288954567E-003_dp, 1.1692629207374552_dp, -2.6314710080507573_dp, 19.237814781880786_dp, 1.0505934173661349_dp, 0.80382371955699250_dp, 0.49903401991818103_dp/) |
real(kind=dp), dimension(2), parameter, public | p3_energy = (/7.82336287670072350E-002_dp, 0.38073304105744837_dp/) |
Routines for optimizing load balance between processes in HFX calculations.
subroutine, public hfx_load_balance_methods::hfx_load_balance | ( | type(hfx_type), pointer | x_data, |
real(dp), intent(in) | eps_schwarz, | ||
type(particle_type), dimension(:), pointer | particle_set, | ||
integer, intent(in) | max_set, | ||
type(mp_para_env_type), pointer | para_env, | ||
type(hfx_screen_coeff_type), dimension(:, :, :, :), pointer | coeffs_set, | ||
type(hfx_screen_coeff_type), dimension(:, :), pointer | coeffs_kind, | ||
integer, dimension(:, :) | is_assoc_atomic_block_global, | ||
logical | do_periodic, | ||
type(hfx_load_balance_type), pointer | load_balance_parameter, | ||
integer, dimension(*) | kind_of, | ||
type(hfx_basis_type), dimension(:), pointer | basis_parameter, | ||
type(hfx_p_kind), dimension(:), pointer | pmax_set, | ||
real(dp), dimension(:, :), pointer | pmax_atom, | ||
integer, intent(in) | i_thread, | ||
integer, intent(in) | n_threads, | ||
type(cell_type), pointer | cell, | ||
logical, intent(in) | do_p_screening, | ||
integer, dimension(:), pointer | map_atom_to_kind_atom, | ||
integer, intent(in) | nkind, | ||
integer, intent(in) | eval_type, | ||
real(dp), dimension(:, :), pointer | pmax_block, | ||
logical, intent(in) | use_virial | ||
) |
Distributes the computation of eri's to all available processes.
x_data | Object that stores the indices array |
eps_schwarz | screening parameter |
particle_set,atomic_kind_set,para_env | ... |
max_set | Maximum number of set to be considered |
para_env | para_env |
coeffs_set | screening functions |
coeffs_kind | screening functions |
is_assoc_atomic_block_global | KS-matrix sparsity |
do_periodic | flag for periodicity |
load_balance_parameter | Parameters for Monte-Carlo routines |
kind_of | helper array for mapping |
basis_parameter | Basis set parameters |
pmax_set | Initial screening matrix |
pmax_atom | ... |
i_thread | Process ID of current Thread |
n_threads | Total Number of Threads |
cell | cell |
do_p_screening | Flag for initial p screening |
map_atom_to_kind_atom | ... |
nkind | ... |
eval_type | ... |
pmax_block | ... |
use_virial | ... |
Definition at line 123 of file hfx_load_balance_methods.F.
subroutine, public hfx_load_balance_methods::hfx_update_load_balance | ( | type(hfx_type), pointer | x_data, |
type(mp_para_env_type), intent(in) | para_env, | ||
type(hfx_load_balance_type) | load_balance_parameter, | ||
integer, intent(in) | i_thread, | ||
integer, intent(in) | n_threads, | ||
integer, intent(in) | eval_type | ||
) |
Cheap way of redistributing the eri's.
x_data | Object that stores the indices array |
para_env | para_env |
load_balance_parameter | contains parmameter for Monte-Carlo routines |
i_thread | current thread ID |
n_threads | Total Number of threads |
eval_type | ... |
Definition at line 1480 of file hfx_load_balance_methods.F.
integer(kind=int_8) function, public hfx_load_balance_methods::cost_model | ( | integer | nsa, |
integer | nsb, | ||
integer | nsc, | ||
integer | nsd, | ||
integer | npgfa, | ||
integer | npgfb, | ||
integer | npgfc, | ||
integer | npgfd, | ||
real(kind=dp) | ratio, | ||
real(kind=dp), dimension(12), intent(in) | p1, | ||
real(kind=dp), dimension(12), intent(in) | p2, | ||
real(kind=dp), dimension(2), intent(in) | p3 | ||
) |
estimates the cost of a set quartet with info available at load balance time i.e. without much info on the primitives primitives
nsa | ... |
nsb | ... |
nsc | ... |
nsd | ... |
npgfa | ... |
npgfb | ... |
npgfc | ... |
npgfd | ... |
ratio | ... |
p1 | ... |
p2 | ... |
p3 | ... |
Definition at line 1765 of file hfx_load_balance_methods.F.
subroutine, public hfx_load_balance_methods::collect_load_balance_info | ( | type(mp_para_env_type), intent(in) | para_env, |
type(hfx_type), pointer | x_data, | ||
integer, intent(in) | iw, | ||
integer, intent(in) | n_threads, | ||
integer, intent(in) | i_thread, | ||
integer, intent(in) | eval_type | ||
) |
...
para_env | ... |
x_data | ... |
iw | ... |
n_threads | ... |
i_thread | ... |
eval_type | ... |
Definition at line 2329 of file hfx_load_balance_methods.F.
real(kind=dp), dimension(12), parameter, public hfx_load_balance_methods::p1_energy = (/2.9461408209700424_dp, 1.0624718662999657_dp, -1.91570128356921242E-002_dp, -1.6668495454436603_dp, 1.7512639006523709_dp, -9.76074323945336081E-002_dp, 2.6230786127311889_dp, -0.31870737623014189_dp, 7.9588203912690973_dp, 1.8331423413134813_dp, -0.15427618665346299_dp, 0.19749436090711650_dp/) |
Definition at line 45 of file hfx_load_balance_methods.F.
real(kind=dp), dimension(12), parameter, public hfx_load_balance_methods::p2_energy = (/2.3104682960662593_dp, 1.8744052737304417_dp, -9.36564055598656797E-002_dp, 0.64284973765086939_dp, 1.0137565430060556_dp, -6.80088178288954567E-003_dp, 1.1692629207374552_dp, -2.6314710080507573_dp, 19.237814781880786_dp, 1.0505934173661349_dp, 0.80382371955699250_dp, 0.49903401991818103_dp/) |
Definition at line 51 of file hfx_load_balance_methods.F.
real(kind=dp), dimension(2), parameter, public hfx_load_balance_methods::p3_energy = (/7.82336287670072350E-002_dp, 0.38073304105744837_dp/) |
Definition at line 57 of file hfx_load_balance_methods.F.