ScalES-PPM
Loading...
Searching...
No Matches
Data Types | Functions/Subroutines | Variables
ppm_m1d.f90 File Reference

multi-level 1-dim partitioner More...

Data Types

type  ppm_m1d::xy_bounds_t
 

Functions/Subroutines

recursive subroutine ppm_m1d::vec_deco (wload, dstart, dend, nproc, refine)
 private subroutine to calulate the solution of the 1-dim decomposition problem
 
subroutine ppm_m1d::gen_dstart (dstart, dend)
 private subroutine to calculate the start marks from end marks of connected intervals
 
subroutine, public ppm_m1d::d1_deco (wload, dstart, dend, nproc, idim, refine)
 Partially solve a two dimensional decomposition problem along one dimension only.
 
subroutine, public ppm_m1d::d2_deco (wload, pbounds, major_dim, refine)
 Solve a two dimensional decomposition problem.
 
subroutine ppm_m1d::refine_c1d (wload, em, pload, nchange)
 refine a contiguous 1dim-decomposition
 

Variables

type(xy_bounds_t), parameter, public ppm_m1d::zero_xy_bounds =xy_bounds_t(1, 0, 1, 0)
 
character(len= *), parameter ppm_m1d::mcontext ='ppm_m1d'
 
logical, parameter ppm_m1d::debug =.FALSE.
 

Detailed Description

multi-level 1-dim partitioner

Version
1.0
Author
Joerg Behrens behre.nosp@m.ns@d.nosp@m.krz.d.nosp@m.e

Function/Subroutine Documentation

◆ d1_deco()

subroutine, public ppm_m1d::d1_deco ( real(dp), dimension(:,:) wload,
integer, dimension(:), intent(inout) dstart,
integer, dimension(:), intent(inout) dend,
integer, intent(in) nproc,
integer, intent(in) idim,
logical, intent(in) refine )

Partially solve a two dimensional decomposition problem along one dimension only.

Along the selected dimension we get the optimal solution for elemental workloads in the limit of infinite resolution.

Parameters
wloadworkload for each element of the 2-dim domain
dstartstart indices of parts
dendend indices of parts
nprocnumber of intervals
idimselected dimension
refinetry to improve the decomposition for finite resolution

◆ d2_deco()

subroutine, public ppm_m1d::d2_deco ( real(dp), dimension(:,:), intent(in) wload,
type(xy_bounds_t), dimension(:,:), intent(out) pbounds,
integer, intent(in) major_dim,
logical, intent(in) refine )

Solve a two dimensional decomposition problem.

Finds the optimal solution for elemental workloads in the limit of infinite resolution for the given process space

Parameters
wloadworkload for each element of the 2-dim domain
pboundsbounds for each process, array shape == process space shape
major_dimthe dimension that is decomposed first
refinetry to improve the decomposition for finite resolution

◆ refine_c1d()

subroutine ppm_m1d::refine_c1d ( real(dp), dimension(:), intent(in) wload,
integer, dimension(:), intent(inout) em,
real(dp), dimension(:), intent(inout) pload,
integer, intent(out), optional nchange )
private

refine a contiguous 1dim-decomposition

Parameters
wloadworkload for each element of the 1-dim domain
emend marks of each part
ploadprocess load, must be valid or pload(1)<0 (in this case pload is recalculated from wload and em)
nchangenumber of changes made by this subroutine

Das diesem Bericht zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung, und Forschung unter dem Förderkennzeichen 01IH08004E gefördert. Die Verantwortung für den Inhalt dieser Veröffentlichung liegt beim Autor.