MAPL_LoadBalanceMod
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer, | public, | parameter | :: | MAPL_Distribute | = | 1 | |
integer, | public, | parameter | :: | MAPL_Retrieve | = | 2 |
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.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(inout) | :: | A(:) | |||
integer, | intent(in) | :: | Idim | |||
integer, | intent(in) | :: | Direction | |||
integer, | intent(in), | optional | :: | Handle | ||
integer, | intent(out), | optional | :: | 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.
Type | Intent | Optional | 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 |
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).
Type | Intent | Optional | 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 |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in), | optional | :: | Handle | ||
integer, | intent(out), | optional | :: | rc |
Type | Intent | Optional | 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 |