MAPL_LoadBalanceMod Module

MODULE: MAPL_LoadBalanceMod


Uses

  • module~~mapl_loadbalancemod~~UsesGraph module~mapl_loadbalancemod MAPL_LoadBalanceMod module~mapl_constants MAPL_Constants module~mapl_loadbalancemod->module~mapl_constants module~mapl_exceptionhandling MAPL_ExceptionHandling module~mapl_loadbalancemod->module~mapl_exceptionhandling module~mapl_sortmod MAPL_SortMod module~mapl_loadbalancemod->module~mapl_sortmod mpi mpi module~mapl_loadbalancemod->mpi iso_fortran_env iso_fortran_env module~mapl_constants->iso_fortran_env module~mapl_internalconstantsmod MAPL_InternalConstantsMod module~mapl_constants->module~mapl_internalconstantsmod module~mapl_mathconstantsmod MAPL_MathConstantsMod module~mapl_constants->module~mapl_mathconstantsmod module~mapl_physicalconstantsmod MAPL_PhysicalConstantsMod module~mapl_constants->module~mapl_physicalconstantsmod module~mapl_errorhandlingmod MAPL_ErrorHandlingMod module~mapl_exceptionhandling->module~mapl_errorhandlingmod module~mapl_throwmod MAPL_ThrowMod module~mapl_exceptionhandling->module~mapl_throwmod module~mapl_sortmod->module~mapl_exceptionhandling module~mapl_sortmod->iso_fortran_env module~mapl_errorhandlingmod->mpi module~mapl_errorhandlingmod->module~mapl_throwmod module~mapl_internalconstantsmod->iso_fortran_env module~mapl_mathconstantsmod->iso_fortran_env module~mapl_physicalconstantsmod->iso_fortran_env module~mapl_physicalconstantsmod->module~mapl_mathconstantsmod

Used by

  • module~~mapl_loadbalancemod~~UsedByGraph module~mapl_loadbalancemod MAPL_LoadBalanceMod module~maplbase_mod MAPLBase_Mod module~maplbase_mod->module~mapl_loadbalancemod module~maplshared MaplShared module~maplshared->module~mapl_loadbalancemod module~extdatautroot_gridcompmod ExtDataUtRoot_GridCompMod module~extdatautroot_gridcompmod->module~maplshared module~mapl MAPL module~extdatautroot_gridcompmod->module~mapl module~mapl->module~maplbase_mod module~mapl_genericmod MAPL_GenericMod module~mapl->module~mapl_genericmod module~mapl_genericmod->module~maplshared module~mapl_nuopcwrappermod MAPL_NUOPCWrapperMod module~mapl_nuopcwrappermod->module~maplbase_mod module~rutmod RUTMod module~rutmod->module~maplbase_mod module~test_cfio_bundle Test_CFIO_Bundle module~test_cfio_bundle->module~maplbase_mod program~tstqsat tstqsat program~tstqsat->module~maplbase_mod program~ut_extdata ut_ExtData program~ut_extdata->module~maplbase_mod program~ut_extdata->module~rutmod program~utcfio~2 utCFIO program~utcfio~2->module~maplbase_mod module~extdata_drivergridcompmod ExtData_DriverGridCompMod module~extdata_drivergridcompmod->module~mapl module~extdatadrivermod ExtDataDriverMod module~extdatadrivermod->module~extdatautroot_gridcompmod module~extdatadrivermod->module~mapl module~historytrajectorymod HistoryTrajectoryMod module~historytrajectorymod->module~mapl_genericmod module~mapl_capgridcompmod MAPL_CapGridCompMod module~mapl_capgridcompmod->module~mapl_genericmod module~mapl_extdatagridcomp2g MAPL_ExtDataGridComp2G module~mapl_extdatagridcomp2g->module~mapl_genericmod module~mapl_extdatagridcompmod MAPL_ExtDataGridCompMod module~mapl_extdatagridcompmod->module~mapl_genericmod module~mapl_historygridcompmod MAPL_HistoryGridCompMod module~mapl_historygridcompmod->module~mapl_genericmod module~mapl_mod MAPL_Mod module~mapl_mod->module~mapl module~mapl_orbgridcompmod MAPL_OrbGridCompMod module~mapl_orbgridcompmod->module~mapl_genericmod module~masksamplergeosatmod MaskSamplerGeosatMod module~masksamplergeosatmod->module~mapl_genericmod module~regrid_util_support_mod regrid_util_support_mod module~regrid_util_support_mod->module~mapl module~stationsamplermod StationSamplerMod module~stationsamplermod->module~mapl_genericmod module~varspecdescriptionmod VarspecDescriptionMod module~varspecdescriptionmod->module~mapl program~capdriver_main CapDriver_Main program~capdriver_main->module~extdatautroot_gridcompmod program~capdriver_main->module~mapl program~comp_testing_driver comp_testing_driver program~comp_testing_driver->module~mapl program~comp_testing_driver->module~mapl_genericmod program~extdata_driver ExtData_Driver program~extdata_driver->module~extdatautroot_gridcompmod program~extdata_driver->module~mapl program~main~2 main program~main~2->module~mapl program~main~8 main program~main~8->module~mapl program~time_ave time_ave program~time_ave->module~mapl

Variables

Type Visibility Attributes Name Initial
integer, public, parameter :: MAPL_Distribute = 1
integer, public, parameter :: MAPL_Retrieve = 2

Interfaces

public interface MAPL_BalanceWork

  • private subroutine MAPL_BalanceWork4(A, Idim, Direction, Handle, rc)

    Depending on the argument “Direction”, this performs the actual distribution of work or the gathering of results for a given strategy. The strategy has to have been predefined by a call to MAPL_BalanceCreate. A strategy “Handle” obtained from that call can be optionally used to specify the strategy. Otherwise, a default strategy is assumed (see MAPL_BalanceCreate for details). Work (Results) is distributed (retrieved) using the buffer A, which is assumed to consist of Jdim contiguous blocks of size Idim. Of course, Jdim can be 1. The blocksize of A (Idim) must be at least as large as the BufLen associated with the strategy. This size can be obtained by quering the strategy using its handle or be saving it from the MAPL_BalanceCreate call. Again, see MAPL_BalanceCreate for details.

    Arguments

    Type IntentOptional Attributes Name
    real, intent(inout) :: A(:)
    integer, intent(in) :: Idim
    integer, intent(in) :: Direction
    integer, intent(in), optional :: Handle
    integer, intent(out), optional :: rc
  • private subroutine MAPL_BalanceWork8(A, Idim, Direction, Handle, rc)

    Depending on the argument “Direction”, this performs the actual distribution of work or the gathering of results for a given strategy. The strategy has to have been predefined by a call to MAPL_BalanceCreate. A strategy “Handle” obtained from that call can be optionally used to specify the strategy. Otherwise, a default strategy is assumed (see MAPL_BalanceCreate for details). Work (Results) is distributed (retrieved) using the buffer A, which is assumed to consist of Jdim contiguous blocks of size Idim. Of course, Jdim can be 1. The blocksize of A (Idim) must be at least as large as the BufLen associated with the strategy. This size can be obtained by quering the strategy using its handle or be saving it from the MAPL_BalanceCreate call. Again, see MAPL_BalanceCreate for details.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=MAPL_R8), intent(inout) :: A(:)
    integer, intent(in) :: Idim
    integer, intent(in) :: Direction
    integer, intent(in), optional :: Handle
    integer, intent(out), optional :: rc

Subroutines

public subroutine MAPL_BalanceCreate(OrgLen, Comm, MaxPasses, BalCond, Handle, BalLen, BufLen, rc)

This routine creates a balancing strategy over an MPI communicator (Comm) given the work in the local rank (OrgLen). The startegy can be committed and used later through Handle. If a handle is not requested, the latest non-committed strategy is kept at Handle=0, which will be the default strategy for the other methods. The number of passes may be optionally controlled with an upper limit (MaxPasses) or a limiting criterion (BalCond). The amount of work resulting for the local rank can be returned (BalLen).

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: OrgLen
integer, intent(in) :: Comm
integer, intent(in), optional :: MaxPasses
real, intent(in), optional :: BalCond
integer, intent(out), optional :: Handle
integer, intent(out), optional :: BalLen
integer, intent(out), optional :: BufLen
integer, intent(out), optional :: rc

public subroutine MAPL_BalanceDestroy(Handle, rc)

Arguments

Type IntentOptional Attributes Name
integer, intent(in), optional :: Handle
integer, intent(out), optional :: rc

public subroutine MAPL_BalanceGet(Handle, BalLen, BufLen, Passes, Comm, rc)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: Handle
integer, intent(out), optional :: BalLen
integer, intent(out), optional :: BufLen
integer, intent(out), optional :: Passes
integer, intent(out), optional :: Comm
integer, intent(out), optional :: rc