splitpart.c

Summary
splitpart.c
splitPartRepartitioning of the initial symbolic factorization and processing of candidate processors group for each colum bloc
printTreeReset the tree level
setTreeLevel
setSubtreeLevel
setTreeCostLevel
setSubtreeCostLevel
setDistribType
PERF_limit_2D
setSubtreeDistribType
splitOnProcs
splitCblkSplit a column bloc in nseq column blocs according to the seq array.
propMappTreeRepartition symbolic matrix using proportionnal mapping method
propMappSubtree
propMappSubtreeNC
propMappSubtreeOn1PCost in the current subtree to be mapped
subtreeSetCand
maxProcCost
propMappTreeNoSplit
propMappSubtreeNoSplit
blokUpdateCostAre we to take the last processor used in the previous sons ?
countBlokrecompute for each splitted odb its contribution compute cost and add cost
setSubtreeBlokNbr
check_candidat

splitPart

void splitPart(SymbolMatrix *symbmtx,
BlendCtrl *ctrl,
const Dof *dofptr)

Repartitioning of the initial symbolic factorization and processing of candidate processors group for each colum bloc

Parameters

symbmtxSymbolic matrix. ctrl - dofptr -

printTree

void printTree(FILE *stream,
const EliminTree *etree,
INT rootnum)

Reset the tree level

setTreeLevel

void setTreeLevel(Cand *candtab,
const EliminTree *etree)

setSubtreeLevel

void setSubtreeLevel(INT rootnum,
Cand *candtab,
const EliminTree *etree)

setTreeCostLevel

void setTreeCostLevel(Cand *candtab,
const EliminTree *etree,
const CostMatrix *costmtx)

setSubtreeCostLevel

void setSubtreeCostLevel(INT rootnum,
Cand *candtab,
const EliminTree *etree,
const CostMatrix *costmtx)

setDistribType

void setDistribType(const INT cblknbr,
SymbolMatrix *symbptr,
Cand *candtab,
const INT level2D)

PERF_limit_2D

INT PERF_limit_2D(INT procnbr,
INT bloklimit)

setSubtreeDistribType

void setSubtreeDistribType(const SymbolMatrix *symbptr,
const CostMatrix *costmtx,
INT rootnum,
const BlendCtrl *ctrl,
INT distrib_type)

splitOnProcs

void splitOnProcs(SymbolMatrix *symbmtx,
ExtraSymbolMatrix *extrasymb,
ExtraCostMatrix *extracost,
BlendCtrl *ctrl,
const Dof *dofptr,
INT cblknum,
INT procnbr)

Parameters

symbmtxSymbolic matrix extrasymb - extracost - ctrl - dofptr - cblknum - procnbr -

splitCblk

void splitCblk(SymbolMatrix *symbmtx,
ExtraSymbolMatrix *extrasymb,
ExtraCostMatrix *extracost,
BlendCtrl *ctrl,
const Dof *dofptr,
INT cblknum,
INT nseq,
INT *seq)

Split a column bloc in nseq column blocs according to the seq array.

Update symbolic matrix and extra symbolic matrix.

Update cost of the node descendant of the splitted column bloc in the elimination tree.

Parameters

symbmtxSymbol matrix.
extrasymbExtra symbol matrix. extracost -
ctrlBlend control structure.
dofptrStructure for degree of freedom, ! does not work anymore !.
cblknumColumn bloc to split.
nseqNumber of part of the split
*seqSplitting indexes array.

propMappTree

void propMappTree(SymbolMatrix *symbmtx,
ExtraSymbolMatrix *extrasymb,
ExtraCostMatrix *extracost,
BlendCtrl *ctrl,
const Dof *dofptr)

Repartition symbolic matrix using proportionnal mapping method

Parameters

symbmtxSymbolic matrix extrasymb - extracost - ctrl - dofptr -

propMappSubtree

void propMappSubtree(SymbolMatrix *symbmtx,
ExtraSymbolMatrix *extrasymb,
ExtraCostMatrix *extracost,
BlendCtrl *ctrl,
const Dof *dofptr,
INT rootnum,
INT fcandnum,
INT lcandnum,
INT cluster,
double *cost_remain)

Parameters

symbmtxSymbolic matrix. extrasymb - extracost - ctrl - dofptr - rootnum - fcandnum - lcandnum - cluster - cost_remain -

propMappSubtreeNC

void propMappSubtreeNC(SymbolMatrix *symbmtx,
ExtraSymbolMatrix *extrasymb,
ExtraCostMatrix *extracost,
BlendCtrl *ctrl,
const Dof *dofptr,
INT rootnum,
INT fcandnum,
INT lcandnum,
INT cluster,
double *cost_remain)

Parameters

symbmtxSymbolic matrix. extrasymb - extracost - ctrl - dofptr - rootnum - fcandnum - lcandnum - cluster - cost_remain -

propMappSubtreeOn1P

void propMappSubtreeOn1P(SymbolMatrix *symbmtx,
ExtraSymbolMatrix *extrasymb,
ExtraCostMatrix *extracost,
BlendCtrl *ctrl,
const Dof *dofptr,
INT rootnum,
INT fcandnum,
INT lcandnum,
INT cluster)

Cost in the current subtree to be mapped

subtreeSetCand

void subtreeSetCand(INT procnum,
INT rootnum,
BlendCtrl *ctrl,
double rcost)

maxProcCost

double maxProcCost(double *proc_cost,
INT procnbr)

propMappTreeNoSplit

void propMappTreeNoSplit(SymbolMatrix *symbmtx,
BlendCtrl *ctrl,
const Dof *dofptr)

propMappSubtreeNoSplit

void propMappSubtreeNoSplit(SymbolMatrix *symbmtx,
BlendCtrl *ctrl,
const Dof *dofptr,
INT rootnum,
INT fcandnum,
INT lcandnum,
double *cost_remain)

blokUpdateCost

double blokUpdateCost(INT bloknum,
INT cblknum,
CostMatrix *costmtx,
ExtraCostMatrix *extracost,
const SymbolMatrix *symbmtx,
const ExtraSymbolMatrix *extrasymb,
BlendCtrl *ctrl,
const Dof *dofptr)

Are we to take the last processor used in the previous sons ? (== crossing processor)*

countBlok

INT countBlok(INT cblknum,
SymbolMatrix *symbptr,
INT blcolmin)

recompute for each splitted odb its contribution compute cost and add cost

setSubtreeBlokNbr

INT setSubtreeBlokNbr(INT rootnum,
const EliminTree *etree,
SymbolMatrix *symbptr,
ExtraSymbolMatrix *extrasymb,
INT blcolmin)

check_candidat

INT check_candidat(SymbolMatrix *symbmtx,
BlendCtrl *ctrl)
void splitPart(SymbolMatrix *symbmtx,
BlendCtrl *ctrl,
const Dof *dofptr)
Repartitioning of the initial symbolic factorization and processing of candidate processors group for each colum bloc
void printTree(FILE *stream,
const EliminTree *etree,
INT rootnum)
Reset the tree level
void setTreeLevel(Cand *candtab,
const EliminTree *etree)
void setSubtreeLevel(INT rootnum,
Cand *candtab,
const EliminTree *etree)
void setTreeCostLevel(Cand *candtab,
const EliminTree *etree,
const CostMatrix *costmtx)
void setSubtreeCostLevel(INT rootnum,
Cand *candtab,
const EliminTree *etree,
const CostMatrix *costmtx)
void setDistribType(const INT cblknbr,
SymbolMatrix *symbptr,
Cand *candtab,
const INT level2D)
INT PERF_limit_2D(INT procnbr,
INT bloklimit)
void setSubtreeDistribType(const SymbolMatrix *symbptr,
const CostMatrix *costmtx,
INT rootnum,
const BlendCtrl *ctrl,
INT distrib_type)
void splitOnProcs(SymbolMatrix *symbmtx,
ExtraSymbolMatrix *extrasymb,
ExtraCostMatrix *extracost,
BlendCtrl *ctrl,
const Dof *dofptr,
INT cblknum,
INT procnbr)
void splitCblk(SymbolMatrix *symbmtx,
ExtraSymbolMatrix *extrasymb,
ExtraCostMatrix *extracost,
BlendCtrl *ctrl,
const Dof *dofptr,
INT cblknum,
INT nseq,
INT *seq)
Split a column bloc in nseq column blocs according to the seq array.
void propMappTree(SymbolMatrix *symbmtx,
ExtraSymbolMatrix *extrasymb,
ExtraCostMatrix *extracost,
BlendCtrl *ctrl,
const Dof *dofptr)
Repartition symbolic matrix using proportionnal mapping method
void propMappSubtree(SymbolMatrix *symbmtx,
ExtraSymbolMatrix *extrasymb,
ExtraCostMatrix *extracost,
BlendCtrl *ctrl,
const Dof *dofptr,
INT rootnum,
INT fcandnum,
INT lcandnum,
INT cluster,
double *cost_remain)
void propMappSubtreeNC(SymbolMatrix *symbmtx,
ExtraSymbolMatrix *extrasymb,
ExtraCostMatrix *extracost,
BlendCtrl *ctrl,
const Dof *dofptr,
INT rootnum,
INT fcandnum,
INT lcandnum,
INT cluster,
double *cost_remain)
void propMappSubtreeOn1P(SymbolMatrix *symbmtx,
ExtraSymbolMatrix *extrasymb,
ExtraCostMatrix *extracost,
BlendCtrl *ctrl,
const Dof *dofptr,
INT rootnum,
INT fcandnum,
INT lcandnum,
INT cluster)
Cost in the current subtree to be mapped
void subtreeSetCand(INT procnum,
INT rootnum,
BlendCtrl *ctrl,
double rcost)
double maxProcCost(double *proc_cost,
INT procnbr)
void propMappTreeNoSplit(SymbolMatrix *symbmtx,
BlendCtrl *ctrl,
const Dof *dofptr)
void propMappSubtreeNoSplit(SymbolMatrix *symbmtx,
BlendCtrl *ctrl,
const Dof *dofptr,
INT rootnum,
INT fcandnum,
INT lcandnum,
double *cost_remain)
double blokUpdateCost(INT bloknum,
INT cblknum,
CostMatrix *costmtx,
ExtraCostMatrix *extracost,
const SymbolMatrix *symbmtx,
const ExtraSymbolMatrix *extrasymb,
BlendCtrl *ctrl,
const Dof *dofptr)
Are we to take the last processor used in the previous sons ?
INT countBlok(INT cblknum,
SymbolMatrix *symbptr,
INT blcolmin)
recompute for each splitted odb its contribution compute cost and add cost
INT setSubtreeBlokNbr(INT rootnum,
const EliminTree *etree,
SymbolMatrix *symbptr,
ExtraSymbolMatrix *extrasymb,
INT blcolmin)
INT check_candidat(SymbolMatrix *symbmtx,
BlendCtrl *ctrl)
Close