![]() |
(git:07c9450)
|
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.