module fd4_globaldef_mod module fd4_domain_mod module fd4_iter_mod module fd4_mpi_mod module rbtree_fd4_block_mod module stack3_mod module timing_modSubroutines and functions:
public subroutine fd4_part_rcb_weight (domain, all_blocks, all_blocks_len, local_blocks, balance, err) private recursive subroutine fd4_part_rcb_bisect (domain, bnd, ranks) private subroutine fd4_part_rcb_exch_weights (domain, all_blocks, all_blocks_len, err)
CAUTION: Don't use! Has not been tested for large domains or high process counts.
Author: Matthias Lieber
See also: module fd4_domain_mod
public subroutine fd4_part_rcb_weight (domain, all_blocks, all_blocks_len, local_blocks, balance, err) type (fd4_domain), intent(inout) :: domain integer (kind=i_k), pointer, dimension (:,:) :: all_blocks integer (kind=i_k), intent(in) :: all_blocks_len type (stack3), intent(inout) :: local_blocks real (kind=r4k), intent(out) :: balance integer (kind=i_k), intent(out) :: err end subroutine fd4_part_rcb_weightParameters:
domain | the domain |
all_blocks | array of positions of the blocks in the new partion |
all_blocks_len | length of all_blocks(3,:) |
local_blocks | stack of new local partition (differs from rank to rank) |
balance | estimated balance of new partitioning (not implemented yet) |
err | error status: 0...ok |
Only works with processor counts which are powers of 2.
TODO:
private recursive subroutine fd4_part_rcb_bisect (domain, bnd, ranks) type (fd4_domain), intent(inout) :: domain integer (kind=i_k), intent(in), dimension (3,2) :: bnd integer (kind=i_k), intent(in), dimension (2) :: ranks end subroutine fd4_part_rcb_bisectParameters:
domain | the domain |
bnd | current subset |
ranks | rank interval to assign |
Internal routine for fd4_part_rcb_weight.
private subroutine fd4_part_rcb_exch_weights (domain, all_blocks, all_blocks_len, err) type (fd4_domain), intent(inout), target :: domain integer (kind=i_k), pointer, dimension (:,:) :: all_blocks integer (kind=i_k), intent(in) :: all_blocks_len integer (kind=i_k), intent(out) :: err end subroutine fd4_part_rcb_exch_weightsParameters:
domain | the domain |
all_blocks | array of positions of the blocks in the new partion |
all_blocks_len | length of all_blocks(3,:) |
err | error status: 0...ok |
Updates domain%balance%blkweights. This is a copy from fd4_part_sfc with modifications (argument all_blocks).
Internal routine.
See also: module fd4_part_sfc_mod