Hitmap 1.3
 All Data Structures Namespaces Files Functions Variables Typedefs Friends Macros Groups Pages
Functions | Variables
hit_layout.c File Reference
#include <stdio.h>
#include <math.h>
#include <hit_layout.h>
#include <hit_funcop.h>
#include <hit_com.h>
#include <hit_sshape.h>
#include <hit_cshape.h>
#include <hit_bshape.h>
Include dependency graph for hit_layout.c:

Go to the source code of this file.

Functions

int hit_layout_plug_layCopy_Sig (int procId, int procsCard, int blocksCard, float *extraParameter, HitSig input, HitSig *res)
 
int hit_layout_plug_layCopy_SigInv (int procId, int procsCard, int blocksCard, float *extraParameter, HitSig input, int ind)
 
int hit_layout_plug_layAllInOne_Sig (int procId, int procsCard, int blocksCard, float *extraParameter, HitSig input, HitSig *res)
 
int hit_layout_plug_layAllInOne_SigInv (int procId, int procsCard, int blocksCard, float *extraParameter, HitSig input, int ind)
 
int hit_layout_plug_layCopy_maxCard (int procsCard, int blocksCard, float *extraParameter)
 
int hit_layout_plug_layRegular_maxCard (int procsCard, int blocksCard, float *extraParameter)
 
int hit_layout_plug_layCopy_minCard (int procsCard, int blocksCard, float *extraParameter)
 
int hit_layout_plug_layRegular_minCard (int procsCard, int blocksCard, float *extraParameter)
 
int hit_layout_plug_layRegular_numActives (int procsCard, int blocksCard, float *extraParameter)
 
int hit_layout_plug_layAllInOne_numActives (int procsCard, int blocksCard, float *extraParameter)
 
int hit_layout_plug_layRegularContiguos_ranks (char topoActiveMode, int procId, int procsCard, int blocksCard, float *extraParameter)
 
int hit_layout_plug_layRegularF_ranks (char topoActiveMode, int procId, int procsCard, int blocksCard, float *extraParameter)
 
int hit_layout_plug_layRegularL_ranks (char topoActiveMode, int procId, int procsCard, int blocksCard, float *extraParameter)
 
int hit_layout_plug_layAllInOne_ranks (char topoActiveMode, int procId, int procsCard, int blocksCard, float *extraParameter)
 
int hit_layout_plug_layBlocks_Sig (int procId, int procsCard, int blocksCard, float *extraParameter, HitSig input, HitSig *res)
 
int hit_layout_plug_layBlocks_SigInv (int procId, int procsCard, int blocksCard, float *extraParameter, HitSig input, int ind)
 
HitLayout hit_layout_plug_layBlocks (HitTopology topo, HitShape shape)
 
HitLayout hit_layout_plug_layDimBlocks (HitTopology topo, HitShape shape, int restrictDim)
 
int hit_layout_plug_layMinBlocks_Sig (int procId, int procsCard, int blocksCard, float *extraParameter, HitSig input, HitSig *res)
 
int hit_layout_plug_layMinBlocks_SigInv (int procId, int procsCard, int blocksCard, float *extraParameter, HitSig input, int ind)
 
int hit_layout_plug_layMinBlocks_maxCard (int procsCard, int blocksCard, float *extraParameter)
 
int hit_layout_plug_layMinBlocks_minCard (int procsCard, int blocksCard, float *extraParameter)
 
int hit_layout_plug_layMinBlocks_numActives (int procsCard, int blocksCard, float *extraParameter)
 
int hit_layout_plug_layMinBlocks_ranks (char topoActiveMode, int procId, int procsCard, int blocksCard, float *extraParameter)
 
HitLayout hit_layout_plug_layMinBlocks (HitTopology topo, HitShape shape, int minElems)
 
int hit_layout_plug_layBlocksX_Sig (int procId, int procsCard, int blocksCard, HitSig input, HitSig *res)
 
HitLayout hit_layout_plug_layBlocksX (HitTopology topo, HitShape shape)
 
int hit_layout_plug_layBlocksF_Sig (int procId, int procsCard, int blocksCard, float *extraParameter, HitSig input, HitSig *res)
 
HitLayout hit_layout_plug_layBlocksF (HitTopology topo, HitShape shape)
 
int hit_layout_plug_layBlocksL_Sig (int procId, int procsCard, int blocksCard, float *extraParameter, HitSig input, HitSig *res)
 
HitLayout hit_layout_plug_layBlocksL (HitTopology topo, HitShape shape)
 
int hit_layout_plug_layCyclic_Sig (int procId, int procsCard, int blocksCard, float *extraParameter, HitSig input, HitSig *res)
 
int hit_layout_plug_layCyclic_SigInv (int procId, int procsCard, int blocksCard, float *extraParameter, HitSig input, int ind)
 
HitLayout hit_layout_plug_layCyclic (HitTopology topo, HitShape shape, int restrictToDim)
 
HitLayout hit_layout_plug_layInLeader (HitTopology topo, HitShape shape)
 
int hit_layout_plug_layBlocksBalance_Sig (int procId, int procsCard, int blocksCard, float *extraParameter, HitSig input, HitSig *res)
 
int hit_layout_plug_layBlocksBalance_SigInv (int procId, int procsCard, int blocksCard, float *extraParameter, HitSig input, int ind)
 
int hit_layout_plug_layBlocksBalance_maxCard (int procsCard, int blocksCard, float *extraParameter)
 
int hit_layout_plug_layBlocksBalance_minCard (int procsCard, int blocksCard, float *extraParameter)
 
int hit_layout_plug_layBlocksBalance_numActives (int procsCard, int blocksCard, float *extraParameter)
 
int hit_layout_plug_layBlocksBalance_ranks (char topoActiveMode, int procId, int procsCard, int blocksCard, float *extraParameter)
 
HitLayout hit_layout_plug_layBlocksBalance (HitTopology topo, HitShape shape, int restrictToDim, float load)
 
int perform_weighted_distribution (int procsCard, int blocksCard, float *weights, int *result)
 
int hit_layout_plug_layWeighted_Sig (int procId, int procsCard, int blocksCard, float *extraParameter, HitSig input, HitSig *res)
 
int hit_layout_plug_layWeighted_SigInv (int procId, int procsCard, int blocksCard, float *extraParameter, HitSig input, int ind)
 
int hit_layout_plug_layWeighted_ranks (char topoActiveMode, int procId, int procsCard, int blocksCard, float *extraParameter)
 
int hit_layout_plug_layWeighted_maxCard (int procsCard, int blocksCard, float *extraParameter)
 
int hit_layout_plug_layWeighted_minCard (int procsCard, int blocksCard, float *extraParameter)
 
int hit_layout_plug_layWeighted_numActives (int procsCard, int blocksCard, float *extraParameter)
 
HitLayout hit_layout_plug_layDimWeighted (HitTopology topo, HitShape shape, int restrictDim, float *weights)
 
HitLayout hit_layout_plug_layWeighted (HitTopology topo, HitShape shape, float *weights)
 
void hit_layWrapNeighbors (HitLayout *lay)
 
void hit_layWrapNeighborsDim (HitLayout *lay, int dim)
 
void hit_layUnwrapNeighbors (HitLayout *lay)
 
void hit_layUnwrapNeighborsDim (HitLayout *lay, int dim)
 
HitShape hit_layMaxShape (HitLayout lay)
 
HitShape hit_layDimMaxShape (HitLayout lay, int dim)
 
HitShape hit_layMinShape (HitLayout lay)
 
HitShape hit_layDimMinShape (HitLayout lay, int dim)
 
int hit_layout_wrapperShape (int topoNumDims, HitRanks proc, int card[HIT_MAXDIMS], HitShape shape, HitShape *newShape, HitLayoutSignatureFunction sigFunctionGeneric, HitLayoutSignatureFunction sigFunctionRestricted, float *extraParameter, int restrictToDim)
 
HitShape hit_layout_wrapperOtherShape (HitLayout self, HitRanks ranks)
 
HitShape hit_layout_wrapperNeighborShape (HitLayout self, int dim, int shift)
 
HitRanks hit_layTransformRanks (char topoActiveMode, HitLayout self, HitRanks ranks)
 
int hit_layActiveRanksId (HitLayout lay, HitRanks ranks)
 
HitRanks hit_layActiveIdRanks (HitLayout lay, int linear)
 
int hit_layNeighborFrom (HitLayout self, int source, int dim, int shift)
 
int hit_layNeighborFromTopoRank (HitLayout self, int source, int dim, int shift)
 
int hit_layNeighborDistance (HitLayout self, int dim, int shift)
 
HitRanks hit_layNeighborRanksFrom (HitLayout self, HitRanks source, int dim, int shift)
 
HitRanks hit_layNeighborRanks (HitLayout self, int dim, int shift)
 
HitLayout hit_layout_wrapper (HitTopology topo, HitShape shape, HitLayoutSignatureFunction signatureGenericF, HitLayoutSignatureInvFunction signatureInvGenericF, HitLayoutSignatureFunction signatureRestrictedF, HitLayoutSignatureInvFunction signatureInvRestrictedF, HitLayoutRanksFunction ranksGenericF, HitLayoutRanksFunction ranksRestrictedF, HitLayoutSignatureMaxCardFunction maxCardGenericF, HitLayoutSignatureMaxCardFunction maxCardRestrictedF, HitLayoutSignatureMinCardFunction minCardGenericF, HitLayoutSignatureMinCardFunction minCardRestrictedF, HitLayoutSignatureNumActivesFunction activesGenericF, HitLayoutSignatureNumActivesFunction activesRestrictedF, float *extraParameter, int restrictToDim)
 
int hit_layNumActives (HitLayout lay)
 
int hit_layDimOwner (HitLayout lay, int dim, int ind)
 
void hit_layFree (HitLayout lay)
 
HitTopology hit_layGroupTopo (HitLayout lay, int groupId)
 
HitTopology hit_layActivesTopology (HitLayout lay)
 
void hit_layout_list_initGroups (HitLayout *lay, int numElementsTotal)
 
void hit_layout_list_addGroup (HitLayout *lay, int leader, int np)
 
void hit_lay_elements (HitLayout layout, int group, int **els, int *nEls)
 
int hit_lay_procGroup (HitLayout layout, int processor)
 
HitLayout hit_layout_plug_layIndependentLB (HitTopology topo, HitShape elements, const double *weights)
 
HitLayout hit_layout_plug_layContiguous (HitTopology topo, HitShape elements, const double *weights)
 
void hit_bShapeBcastInternal (HitShape *shape, HitTopology topo)
 
HitLayout hit_layout_plug_layBitmap (HitTopology topo, HitShape *shapeP)
 
void hit_cShapeBcastInternal (HitShape *shape, HitTopology topo)
 
HitLayout hit_layout_plug_laySparseRows (HitTopology topo, HitShape *shapeP)
 
HitLayout hit_layout_plug_laySparseBitmapRows (HitTopology topo, HitShape *shapeP)
 

Variables

int hit_lsig_vfor_index [HIT_MAXDIMS]
 
HitLayoutSig HIT_LAYOUTSIG_NULL = HIT_SIGLAYOUT_NULL_STATIC
 
HitGroup HIT_GROUP_NULL = HIT_GROUP_NULL_STATIC
 
HitLayoutList HIT_LAYOUTLIST_NULL = HIT_LAYOUTLIST_NULL_STATIC
 
HitLayout HIT_LAYOUT_NULL = HIT_LAYOUT_NULL_STATIC
 

Detailed Description

Layout management module. A layout maps the indexes in a shape domain into the processes from a virtual topology

Version
1.6
Author
Arturo Gonzalez-Escribano
Javier Fresno Bausela
Carlos de Blas Carton
Date
Ene 2015

Definition in file hit_layout.c.

Function Documentation

void hit_bShapeBcastInternal ( HitShape shape,
HitTopology  topo 
)

Performs a Broadcast communication to share a sparse shape.

Definition at line 2809 of file hit_layout.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void hit_cShapeBcastInternal ( HitShape shape,
HitTopology  topo 
)

Definition at line 2910 of file hit_layout.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void hit_lay_elements ( HitLayout  layout,
int  group,
int **  elements,
int *  nElements 
)

List of the elements assigned to a group

Parameters
layoutThe layout.
groupThe asked group number.
elementspointer to a int array where the elements number are alocated.
nElementspointer to a int where the number of elements are saved.

Definition at line 2452 of file hit_layout.c.

int hit_lay_procGroup ( HitLayout  layout,
int  processor 
)

Calculate the group number for a given processor

Parameters
layoutThe layout.
processorThe processor number.
Returns
The group number of the select processor.

Definition at line 2477 of file hit_layout.c.

Here is the caller graph for this function:

HitRanks hit_layActiveIdRanks ( HitLayout  lay,
int  id 
)

hit_layActiveIdRanks: Transforms a process id in multidimensional active ranks in the active grid

Parameters
layLayout.
ranksActive Ranks.
Returns
Process identifier (linear rank).

Definition at line 1935 of file hit_layout.c.

Here is the caller graph for this function:

int hit_layActiveRanksId ( HitLayout  lay,
HitRanks  ranks 
)

hit_layActiveRanksId: Transforms multidimensional active ranks to a process id in the active grid

Parameters
layLayout.
ranksActive Ranks.
Returns
Process identifier (linear rank).

Definition at line 1916 of file hit_layout.c.

Here is the caller graph for this function:

HitTopology hit_layActivesTopology ( HitLayout  lay)

hit_layActivesTopology: Returns the topology with the active processors

Definition at line 2372 of file hit_layout.c.

Here is the call graph for this function:

Here is the caller graph for this function:

HitShape hit_layDimMaxShape ( HitLayout  lay,
int  dim 
)

Return the maximum shape of the neighbors in a given dimension in a the layout. This function can be used to make a buffer to share date among neighbors in a dimension.

Parameters
layThe Layout. lay Dimension.
Returns
The maximum shape.

Definition at line 1650 of file hit_layout.c.

HitShape hit_layDimMinShape ( HitLayout  lay,
int  dim 
)

Return the minimum shape of the neighbors in a given dimension in a the layout. This function can be used to make a buffer to share date among neighbors in a dimension.

Parameters
layThe Layout. lay Dimension.
Returns
The minimum shape.

Definition at line 1704 of file hit_layout.c.

int hit_layDimOwner ( HitLayout  lay,
int  dim,
int  ind 
)

hit_layDimOwner: Transforms shape index to active rank of the owner process

Parameters
layLayout.
indShape index
Returns
Active rank of the owner

Definition at line 2223 of file hit_layout.c.

Here is the caller graph for this function:

void hit_layFree ( HitLayout  lay)

hit_layFree: free allocated resources used by the layout.

Definition at line 2251 of file hit_layout.c.

Here is the call graph for this function:

Here is the caller graph for this function:

HitTopology hit_layGroupTopo ( HitLayout  lay,
int  groupId 
)

hit_layGroupTopo: Builds and returns the subtopology of a given group

Definition at line 2318 of file hit_layout.c.

Here is the call graph for this function:

Here is the caller graph for this function:

HitShape hit_layMaxShape ( HitLayout  lay)

Return the maximum shape of the neighbors in the layout. This function can be used to make a buffer to share date among the processors.

Parameters
layThe Layout.
Returns
The maximum shape.

Definition at line 1623 of file hit_layout.c.

Here is the caller graph for this function:

HitShape hit_layMinShape ( HitLayout  lay)

Return the minimum shape of the neighbors in the layout. This function can be used to make a buffer to share date among the processors.

Parameters
layThe Layout.
Returns
The minimum shape.

Definition at line 1677 of file hit_layout.c.

int hit_layNeighborDistance ( HitLayout  self,
int  dim,
int  shift 
)

Definition at line 2001 of file hit_layout.c.

Here is the call graph for this function:

int hit_layNeighborFrom ( HitLayout  self,
int  source,
int  dim,
int  shift 
)

Definition at line 1955 of file hit_layout.c.

Here is the caller graph for this function:

int hit_layNeighborFromTopoRank ( HitLayout  self,
int  source,
int  dim,
int  shift 
)

Definition at line 1982 of file hit_layout.c.

Here is the call graph for this function:

Here is the caller graph for this function:

HitRanks hit_layNeighborRanks ( HitLayout  self,
int  dim,
int  shift 
)

Definition at line 2039 of file hit_layout.c.

HitRanks hit_layNeighborRanksFrom ( HitLayout  self,
HitRanks  source,
int  dim,
int  shift 
)

Definition at line 2008 of file hit_layout.c.

Here is the call graph for this function:

int hit_layNumActives ( HitLayout  lay)

Number of total active processors in the layout

Definition at line 2213 of file hit_layout.c.

Here is the caller graph for this function:

void hit_layout_list_addGroup ( HitLayout lay,
int  leader,
int  np 
)

hit_layout_list_addGroup Adds a new group to a list layout

Parameters
layA pointer to the layout
leader,theleader of the group, if it is -1 the function will calculate it automatically
np,thenumber of processors in the group

Definition at line 2423 of file hit_layout.c.

Here is the caller graph for this function:

void hit_layout_list_initGroups ( HitLayout lay,
int  numElementsTotal 
)

Definition at line 2401 of file hit_layout.c.

Here is the caller graph for this function:

int hit_layout_plug_layAllInOne_numActives ( int  procsCard,
int  blocksCard,
float *  extraParameter 
)

Definition at line 191 of file hit_layout.c.

Here is the caller graph for this function:

int hit_layout_plug_layAllInOne_ranks ( char  topoActiveMode,
int  procId,
int  procsCard,
int  blocksCard,
float *  extraParameter 
)

Definition at line 256 of file hit_layout.c.

Here is the caller graph for this function:

int hit_layout_plug_layAllInOne_Sig ( int  procId,
int  procsCard,
int  blocksCard,
float *  extraParameter,
HitSig  input,
HitSig res 
)

Definition at line 110 of file hit_layout.c.

Here is the caller graph for this function:

int hit_layout_plug_layAllInOne_SigInv ( int  procId,
int  procsCard,
int  blocksCard,
float *  extraParameter,
HitSig  input,
int  ind 
)

Definition at line 132 of file hit_layout.c.

Here is the caller graph for this function:

HitLayout hit_layout_plug_layBitmap ( HitTopology  topo,
HitShape shape 
)

Distributes a graph into groups of processors by "rows".

Parameters
topothe topology.
shapethe sparse shape that represents the graph.
Returns
a list layout

Definition at line 2859 of file hit_layout.c.

Here is the call graph for this function:

HitLayout hit_layout_plug_layBlocks ( HitTopology  topo,
HitShape  shape 
)

Hit Layout Blocks constructor function This layout leave the inactive processor at the end of the dimension when there are more processor than data.

Parameters
topoThe topology
shapeThe global shape

Definition at line 326 of file hit_layout.c.

Here is the call graph for this function:

int hit_layout_plug_layBlocks_Sig ( int  procId,
int  procsCard,
int  blocksCard,
float *  extraParameter,
HitSig  input,
HitSig res 
)

Definition at line 273 of file hit_layout.c.

Here is the caller graph for this function:

int hit_layout_plug_layBlocks_SigInv ( int  procId,
int  procsCard,
int  blocksCard,
float *  extraParameter,
HitSig  input,
int  ind 
)

Definition at line 307 of file hit_layout.c.

Here is the caller graph for this function:

HitLayout hit_layout_plug_layBlocksBalance ( HitTopology  topo,
HitShape  shape,
int  dim,
float  load 
)

Hit Layout Blocks with Load Balance in One Dimension constructor function This layout leave the inactive processor at the end of the dimension when there are more processor that data.

TODO: This is a test implementation for only two types of devices that simply applies a trivial load-balancing in one dimension

Parameters
topoThe topology
shapeThe global shape
dimThe dimension in which load balance is applyed
loadThe normalized capability of the first device (between 0.0 and 1.0)

Definition at line 1202 of file hit_layout.c.

Here is the call graph for this function:

int hit_layout_plug_layBlocksBalance_maxCard ( int  procsCard,
int  blocksCard,
float *  extraParameter 
)

Definition at line 1129 of file hit_layout.c.

Here is the call graph for this function:

Here is the caller graph for this function:

int hit_layout_plug_layBlocksBalance_minCard ( int  procsCard,
int  blocksCard,
float *  extraParameter 
)

Definition at line 1146 of file hit_layout.c.

Here is the call graph for this function:

Here is the caller graph for this function:

int hit_layout_plug_layBlocksBalance_numActives ( int  procsCard,
int  blocksCard,
float *  extraParameter 
)

Definition at line 1164 of file hit_layout.c.

Here is the call graph for this function:

Here is the caller graph for this function:

int hit_layout_plug_layBlocksBalance_ranks ( char  topoActiveMode,
int  procId,
int  procsCard,
int  blocksCard,
float *  extraParameter 
)

Definition at line 1186 of file hit_layout.c.

Here is the call graph for this function:

Here is the caller graph for this function:

int hit_layout_plug_layBlocksBalance_Sig ( int  procId,
int  procsCard,
int  blocksCard,
float *  extraParameter,
HitSig  input,
HitSig res 
)

Definition at line 1058 of file hit_layout.c.

Here is the call graph for this function:

Here is the caller graph for this function:

int hit_layout_plug_layBlocksBalance_SigInv ( int  procId,
int  procsCard,
int  blocksCard,
float *  extraParameter,
HitSig  input,
int  ind 
)

Definition at line 1101 of file hit_layout.c.

Here is the call graph for this function:

Here is the caller graph for this function:

HitLayout hit_layout_plug_layBlocksF ( HitTopology  topo,
HitShape  shape 
)

Hit Layout BlocksF constructor function (Blocks at First) This layout mix active and inactive processors in a regular way making groups when there are more processor than data. The leader is the first processor in the group.

Parameters
topoThe topology
shapeThe global shape

Definition at line 721 of file hit_layout.c.

Here is the call graph for this function:

int hit_layout_plug_layBlocksF_Sig ( int  procId,
int  procsCard,
int  blocksCard,
float *  extraParameter,
HitSig  input,
HitSig res 
)

Definition at line 686 of file hit_layout.c.

Here is the caller graph for this function:

HitLayout hit_layout_plug_layBlocksL ( HitTopology  topo,
HitShape  shape 
)

Hit Layout BlocksF constructor function (Blocks at Last) This layout mix active and inactive processors in a regular way making groups when there are more processor than data. The leader is the last processor in the group.

Parameters
topoThe topology
shapeThe global shape

Definition at line 838 of file hit_layout.c.

Here is the call graph for this function:

int hit_layout_plug_layBlocksL_Sig ( int  procId,
int  procsCard,
int  blocksCard,
float *  extraParameter,
HitSig  input,
HitSig res 
)

Definition at line 789 of file hit_layout.c.

Here is the caller graph for this function:

HitLayout hit_layout_plug_layBlocksX ( HitTopology  topo,
HitShape  shape 
)

An alternative implementation of Blocks

Definition at line 625 of file hit_layout.c.

Here is the call graph for this function:

int hit_layout_plug_layBlocksX_Sig ( int  procId,
int  procsCard,
int  blocksCard,
HitSig  input,
HitSig res 
)

Definition at line 588 of file hit_layout.c.

HitLayout hit_layout_plug_layContiguous ( HitTopology  topo,
HitShape  elements,
const double *  weights 
)

hit_layout_plug_layContiguous: generic sheduling of n contiguos blocks to m processors, according to block weights.

Parameters
topothe topology.
elementsthe shape that represent the element domain.
weightsthe block weights.
Returns
a list layout.

Definition at line 2652 of file hit_layout.c.

Here is the call graph for this function:

int hit_layout_plug_layCopy_maxCard ( int  procsCard,
int  blocksCard,
float *  extraParameter 
)

Definition at line 152 of file hit_layout.c.

Here is the caller graph for this function:

int hit_layout_plug_layCopy_minCard ( int  procsCard,
int  blocksCard,
float *  extraParameter 
)

Definition at line 167 of file hit_layout.c.

Here is the caller graph for this function:

int hit_layout_plug_layCopy_Sig ( int  procId,
int  procsCard,
int  blocksCard,
float *  extraParameter,
HitSig  input,
HitSig res 
)

Definition at line 80 of file hit_layout.c.

Here is the caller graph for this function:

int hit_layout_plug_layCopy_SigInv ( int  procId,
int  procsCard,
int  blocksCard,
float *  extraParameter,
HitSig  input,
int  ind 
)

Definition at line 93 of file hit_layout.c.

Here is the caller graph for this function:

HitLayout hit_layout_plug_layCyclic ( HitTopology  topo,
HitShape  shape,
int  dim 
)

Hit Layout Cyclic constructor function Distribute the data defined by a shape among the processors in a cyclic way.

Parameters
topoThe topology
shapeThe global shape
dimNumber of dimensions

Definition at line 948 of file hit_layout.c.

Here is the call graph for this function:

int hit_layout_plug_layCyclic_Sig ( int  procId,
int  procsCard,
int  blocksCard,
float *  extraParameter,
HitSig  input,
HitSig res 
)

Definition at line 905 of file hit_layout.c.

Here is the caller graph for this function:

int hit_layout_plug_layCyclic_SigInv ( int  procId,
int  procsCard,
int  blocksCard,
float *  extraParameter,
HitSig  input,
int  ind 
)

Definition at line 930 of file hit_layout.c.

Here is the caller graph for this function:

HitLayout hit_layout_plug_layDimBlocks ( HitTopology  topo,
HitShape  shape,
int  restrictDim 
)

Hit Layout DimBlocks constructor function Applies blocks in a given dimension. This layout leave the inactive processor at the end of the dimension when there are more processor than data.

Parameters
topoThe topology
shapeThe global shape
restrictDimThe dimension to apply the block/band partition

Definition at line 382 of file hit_layout.c.

Here is the call graph for this function:

HitLayout hit_layout_plug_layDimWeighted ( HitTopology  topo,
HitShape  shape,
int  restrictDim,
float *  weights 
)

TODO: Write the documentation

Definition at line 1484 of file hit_layout.c.

Here is the call graph for this function:

HitLayout hit_layout_plug_layIndependentLB ( HitTopology  topo,
HitShape  elements,
const double *  weights 
)

hit_layout_plug_layIndependentLB: generic sheduling of n independent blocks to m processors, according to block weights.

Parameters
topothe topology.
elementsthe shape that represent the element domain.
weightsthe block weights
Returns
a list layout.

Definition at line 2495 of file hit_layout.c.

Here is the call graph for this function:

HitLayout hit_layout_plug_layInLeader ( HitTopology  topo,
HitShape  shape 
)

Hit Layout AllInLeader constructor function Distribute the whole domain to a single proccess: The leader

Parameters
topoThe topology
shapeThe global shape

Definition at line 1013 of file hit_layout.c.

Here is the call graph for this function:

HitLayout hit_layout_plug_layMinBlocks ( HitTopology  topo,
HitShape  shape,
int  minElems 
)

Hit Layout MinBlocks constructor function The resulting blocks will have a minimum number of elements. This layout leave the inactive processor at the end of the dimension when there are more processor than data.

Parameters
topoThe topology
shapeThe global shape
minElemsThe minimum number of elements on each partition

Definition at line 529 of file hit_layout.c.

Here is the call graph for this function:

int hit_layout_plug_layMinBlocks_maxCard ( int  procsCard,
int  blocksCard,
float *  extraParameter 
)

Definition at line 493 of file hit_layout.c.

Here is the call graph for this function:

Here is the caller graph for this function:

int hit_layout_plug_layMinBlocks_minCard ( int  procsCard,
int  blocksCard,
float *  extraParameter 
)

Definition at line 501 of file hit_layout.c.

Here is the call graph for this function:

Here is the caller graph for this function:

int hit_layout_plug_layMinBlocks_numActives ( int  procsCard,
int  blocksCard,
float *  extraParameter 
)

Definition at line 509 of file hit_layout.c.

Here is the caller graph for this function:

int hit_layout_plug_layMinBlocks_ranks ( char  topoActiveMode,
int  procId,
int  procsCard,
int  blocksCard,
float *  extraParameter 
)

Definition at line 514 of file hit_layout.c.

Here is the call graph for this function:

Here is the caller graph for this function:

int hit_layout_plug_layMinBlocks_Sig ( int  procId,
int  procsCard,
int  blocksCard,
float *  extraParameter,
HitSig  input,
HitSig res 
)

Definition at line 437 of file hit_layout.c.

Here is the call graph for this function:

Here is the caller graph for this function:

int hit_layout_plug_layMinBlocks_SigInv ( int  procId,
int  procsCard,
int  blocksCard,
float *  extraParameter,
HitSig  input,
int  ind 
)

Definition at line 469 of file hit_layout.c.

Here is the call graph for this function:

Here is the caller graph for this function:

int hit_layout_plug_layRegular_maxCard ( int  procsCard,
int  blocksCard,
float *  extraParameter 
)

Definition at line 160 of file hit_layout.c.

Here is the caller graph for this function:

int hit_layout_plug_layRegular_minCard ( int  procsCard,
int  blocksCard,
float *  extraParameter 
)

Definition at line 175 of file hit_layout.c.

Here is the caller graph for this function:

int hit_layout_plug_layRegular_numActives ( int  procsCard,
int  blocksCard,
float *  extraParameter 
)

Definition at line 183 of file hit_layout.c.

Here is the caller graph for this function:

int hit_layout_plug_layRegularContiguos_ranks ( char  topoActiveMode,
int  procId,
int  procsCard,
int  blocksCard,
float *  extraParameter 
)

Definition at line 203 of file hit_layout.c.

Here is the caller graph for this function:

int hit_layout_plug_layRegularF_ranks ( char  topoActiveMode,
int  procId,
int  procsCard,
int  blocksCard,
float *  extraParameter 
)

Definition at line 220 of file hit_layout.c.

Here is the caller graph for this function:

int hit_layout_plug_layRegularL_ranks ( char  topoActiveMode,
int  procId,
int  procsCard,
int  blocksCard,
float *  extraParameter 
)

Definition at line 238 of file hit_layout.c.

Here is the caller graph for this function:

HitLayout hit_layout_plug_laySparseBitmapRows ( HitTopology  topo,
HitShape shapeP 
)

Distributes a matrix into groups of processors by rows.

Parameters
topothe topology.
shapethe sparse shape that represents the matrix.
Returns
a list layout
Note
Layout for bitmap shapes.

Definition at line 3015 of file hit_layout.c.

Here is the call graph for this function:

HitLayout hit_layout_plug_laySparseRows ( HitTopology  topo,
HitShape shape 
)

Distributes a matrix into groups of processors by rows.

Parameters
topothe topology.
shapethe sparse shape that represents the matrix.
Returns
a list layout

Definition at line 2963 of file hit_layout.c.

Here is the call graph for this function:

HitLayout hit_layout_plug_layWeighted ( HitTopology  topo,
HitShape  shape,
float *  weights 
)

TODO: Write the documentation

Definition at line 1538 of file hit_layout.c.

Here is the call graph for this function:

int hit_layout_plug_layWeighted_maxCard ( int  procsCard,
int  blocksCard,
float *  extraParameter 
)

Definition at line 1447 of file hit_layout.c.

Here is the call graph for this function:

Here is the caller graph for this function:

int hit_layout_plug_layWeighted_minCard ( int  procsCard,
int  blocksCard,
float *  extraParameter 
)

Definition at line 1459 of file hit_layout.c.

Here is the call graph for this function:

Here is the caller graph for this function:

int hit_layout_plug_layWeighted_numActives ( int  procsCard,
int  blocksCard,
float *  extraParameter 
)

Definition at line 1471 of file hit_layout.c.

Here is the call graph for this function:

Here is the caller graph for this function:

int hit_layout_plug_layWeighted_ranks ( char  topoActiveMode,
int  procId,
int  procsCard,
int  blocksCard,
float *  extraParameter 
)

Definition at line 1428 of file hit_layout.c.

int hit_layout_plug_layWeighted_Sig ( int  procId,
int  procsCard,
int  blocksCard,
float *  extraParameter,
HitSig  input,
HitSig res 
)

Definition at line 1340 of file hit_layout.c.

Here is the call graph for this function:

Here is the caller graph for this function:

int hit_layout_plug_layWeighted_SigInv ( int  procId,
int  procsCard,
int  blocksCard,
float *  extraParameter,
HitSig  input,
int  ind 
)

Definition at line 1385 of file hit_layout.c.

Here is the call graph for this function:

Here is the caller graph for this function:

HitLayout hit_layout_wrapper ( HitTopology  topo,
HitShape  shape,
HitLayoutSignatureFunction  signatureGenericF,
HitLayoutSignatureInvFunction  signatureInvGenericF,
HitLayoutSignatureFunction  signatureRestrictedF,
HitLayoutSignatureInvFunction  signatureInvRestrictedF,
HitLayoutRanksFunction  ranksGenericF,
HitLayoutRanksFunction  ranksRestrictedF,
HitLayoutSignatureMaxCardFunction  maxCardGenericF,
HitLayoutSignatureMaxCardFunction  maxCardRestrictedF,
HitLayoutSignatureMinCardFunction  minCardGenericF,
HitLayoutSignatureMinCardFunction  minCardRestrictedF,
HitLayoutSignatureNumActivesFunction  activesGenericF,
HitLayoutSignatureNumActivesFunction  activesRestrictedF,
float *  extraParameter,
int  restrictToDim 
)

Definition at line 2073 of file hit_layout.c.

Here is the call graph for this function:

Here is the caller graph for this function:

HitShape hit_layout_wrapperNeighborShape ( HitLayout  self,
int  dim,
int  shift 
)

Definition at line 1815 of file hit_layout.c.

HitShape hit_layout_wrapperOtherShape ( HitLayout  self,
HitRanks  ranks 
)

Definition at line 1792 of file hit_layout.c.

Here is the call graph for this function:

int hit_layout_wrapperShape ( int  topoNumDims,
HitRanks  proc,
int  card[HIT_MAXDIMS],
HitShape  shape,
HitShape newShape,
HitLayoutSignatureFunction  sigFunctionGeneric,
HitLayoutSignatureFunction  sigFunctionRestricted,
float *  extraParameter,
int  restrictToDim 
)

Definition at line 1732 of file hit_layout.c.

Here is the caller graph for this function:

HitRanks hit_layTransformRanks ( char  topoActiveMode,
HitLayout  self,
HitRanks  ranks 
)

Definition at line 1886 of file hit_layout.c.

void hit_layUnwrapNeighbors ( HitLayout lay)

Unset the periodic boundary conditions

Definition at line 1607 of file hit_layout.c.

void hit_layUnwrapNeighborsDim ( HitLayout lay,
int  dim 
)

Unset the periodic boundary conditions for one dimension

Definition at line 1616 of file hit_layout.c.

void hit_layWrapNeighbors ( HitLayout lay)

Set the periodic boundary conditions

Definition at line 1593 of file hit_layout.c.

Here is the caller graph for this function:

void hit_layWrapNeighborsDim ( HitLayout lay,
int  dim 
)

Set the periodic boundary conditions for one dimension

Definition at line 1602 of file hit_layout.c.

int perform_weighted_distribution ( int  procsCard,
int  blocksCard,
float *  weights,
int *  result 
)

Definition at line 1262 of file hit_layout.c.

Here is the caller graph for this function:

Variable Documentation

HitGroup HIT_GROUP_NULL = HIT_GROUP_NULL_STATIC

Null value for Groups.

Definition at line 65 of file hit_layout.c.

HitLayout HIT_LAYOUT_NULL = HIT_LAYOUT_NULL_STATIC

Null value for a layout.

Definition at line 71 of file hit_layout.c.

Null value for List Layout.

Definition at line 68 of file hit_layout.c.

Null value for Signature Layouts

Definition at line 62 of file hit_layout.c.

int hit_lsig_vfor_index[HIT_MAXDIMS]

Extern array used by the hit_lsig_vfor function.

See Also
hit_lsig_vfor.

Definition at line 59 of file hit_layout.c.