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

Go to the source code of this file.

Functions

void hit_comInit (int *pargc, char **pargv[])
 
void hit_comFinalize ()
 
HitType hit_comType (const void *varP, HitType baseType)
 
void * hit_comSearchData (const void *varP)
 
HitType hit_comTypeRec (const void *varP, HitType baseType)
 
void hit_comAllowDim (HitLayout *lay, int dim)
 
HitCom hit_comSendRecvReplaceSelectTag (HitLayout lay, HitRanks sendTo, const void *tileP, HitShape selection, int selectMode, HitRanks receiveFrom, HitType baseType, int tag)
 
HitCom hit_comSendRecvSelectTag (HitLayout lay, HitRanks sendTo, const void *tilePSend, HitShape selectionSend, int selectSendMode, HitRanks receiveFrom, const void *tilePRecv, HitShape selectionRecv, int selectRecvMode, HitType baseType, int tag)
 
HitCom hit_comReduceSelect (HitLayout lay, HitRanks root, const void *tilePSend, HitShape selectionSend, int selectSendMode, const void *tilePRecv, HitShape selectionRecv, int selectRecvMode, HitType baseType, HitOp operation)
 
HitCom hit_comReduceDimSelect (HitLayout lay, int dim, HitRanks root, const void *tilePSend, HitShape selectionSend, int selectSendMode, const void *tilePRecv, HitShape selectionRecv, int selectRecvMode, HitType baseType, HitOp operation)
 
HitCom hit_comBroadcastSelect (HitLayout lay, HitRanks root, const void *tileP, HitShape selection, int selectMode, HitType baseType)
 
HitCom hit_comBroadcastDimSelect (HitLayout lay, int dim, int root, const void *tileP, HitShape selection, int selectMode, HitType baseType)
 
HitCom hit_comAlltoallSelect (HitLayout lay, const void *tilePSend, HitShape selectionSend, int selectSendMode, const void *tilePRecv, HitShape selectionRecv, int selectRecvMode, HitType baseType, int count)
 
HitCom hit_comAlltoallSelectv (HitLayout lay, const void *tilePSend, HitShape *selectionSend, int selectSendMode, const void *tilePRecv, HitShape *selectionRecv, int selectRecvMode, HitType baseType)
 
HitCom hit_comAllGathervInternal (HitLayout lay, const void *tilePSend, const void *tilePRecv, HitType baseType, const char *file, int line)
 
HitCom hit_comSparseUpdate (HitLayout lay, const void *tileP, HitType baseType)
 
HitCom hit_comSparseUpdateCSR (HitLayout lay, const void *tileP, HitType baseType)
 
HitCom hit_comSparseUpdateBitmap (HitLayout lay, const void *tileP, HitType baseType)
 
HitCom hit_comSparseScatterInternal (HitLayout lay, const void *tilePSend, const void *tilePRecv, HitType baseType, const char *file, int line)
 
HitCom hit_comAllDistribute (HitLayout lay, const void *tilePSend, int *count, const void *tilePRecv, HitType baseType)
 
HitCom hit_comSparseScatterRowsInternal (HitLayout lay, const void *tilePSend, const void *tilePRecv, HitType baseType, const char *file, int line)
 
void hit_comUpdateOriginData (HitCom *com, const void *tileP)
 
void hit_comFree (HitCom issue)
 
void hit_comStartSend (HitCom *issue)
 
void hit_comEndSend (HitCom *issue)
 
void hit_comDoSend (HitCom *issue)
 
void hit_comDoRecv (HitCom *issue)
 
void hit_comStartRecv (HitCom *issue)
 
void hit_comEndRecv (HitCom *issue)
 
void hit_comDoSendRecvReplace (HitCom *issue)
 
void hit_comDoReduce (HitCom *issue)
 
void hit_comDoBroadcast (HitCom *issue)
 
void hit_comDoAlltoall (HitCom *issue)
 
void hit_comDoAlltoallv (HitCom *issue)
 
void hit_comDoSparseUpdateCSR (HitCom *issue)
 
void hit_comDoSparseUpdateBitmap (HitCom *issue)
 
void hit_comDoSparseUpdate (HitCom *issue)
 
void hit_comDoSparseScatter (HitCom *issue)
 
void hit_comDoSparseScatterRows (HitCom *issue)
 
void hit_comDoAllGatherv (HitCom *issue)
 
void hit_comDo (HitCom *issue)
 
void hit_comOpSumDoubleBasic (void *in, void *inout)
 
void hit_comOpMaxDoubleBasic (void *in, void *inout)
 
void hit_comOpMinDoubleBasic (void *in, void *inout)
 
void hit_comOpSumIntBasic (void *in, void *inout)
 
void hit_comOpMaxIntBasic (void *in, void *inout)
 
void hit_comOpMinIntBasic (void *in, void *inout)
 
void hit_comOpGenericAnyType (void *in, void *inout, MPI_Datatype datatype, int offset, size_t tam, HitComOpFunction f)
 
void hit_comOpSumDouble (void *in, void *inout, int *len, HitType *type)
 
void hit_comOpMaxDouble (void *in, void *inout, int *len, HitType *type)
 
void hit_comOpMinDouble (void *in, void *inout, int *len, HitType *type)
 
void hit_comOpSumInt (void *in, void *inout, int *len, HitType *type)
 
void hit_comOpMaxInt (void *in, void *inout, int *len, HitType *type)
 
void hit_comOpMinInt (void *in, void *inout, int *len, HitType *type)
 

Variables

HitCom HIT_COM_NULL = HIT_COM_NULL_STATIC
 
HitComAlltoallv HIT_COM_ALLTOALLV_NULL = HIT_COM_ALLTOALLV_NULL_STATIC
 
HitComSparse HIT_COM_SPARSE_NULL = HIT_COM_SPARSE_NULL_STATIC
 
HitOp HIT_OP_SUM_INT
 
HitOp HIT_OP_MIN_INT
 
HitOp HIT_OP_MAX_INT
 
HitOp HIT_OP_SUM_DOUBLE
 
HitOp HIT_OP_MIN_DOUBLE
 
HitOp HIT_OP_MAX_DOUBLE
 
HitType HIT_SHAPE_SIG
 
MPI_Errhandler mpi_errhandler
 

Detailed Description

MPI Communications management module. It allow to create point to point or collective communications on active processors on a Hitmap Topology or Layout. The communications are encapsulated in a HitCom object.

Version
1.2
Author
Arturo Gonzalez-Escribano
Javier Fresno Bausela
Carlos de Blas Carton
Date
Sep 2011

Definition in file hit_com.c.

Function Documentation

HitCom hit_comAllDistribute ( HitLayout  lay,
const void *  tilePSend,
int *  count,
const void *  tilePRecv,
HitType  baseType 
)

This communication distributes different sets of data to the processors using a plug_layContiguous. The processors have part of each set. When the communication is done, each processors will have the data of its assigned sets.

Parameters
layThe layout with the partition.
tilePSendThe tile with the partial sets.
countThe number of elements in each partial set.
tilePRecvThe tile to reive the complete sets for each processors.
baseTypeThe hitmap base type of the data.
Note
works only with plug_layContiguous
Returns
The new HitCom object.

Definition at line 1651 of file hit_com.c.

Here is the call graph for this function:

Here is the caller graph for this function:

HitCom hit_comAllGathervInternal ( HitLayout  lay,
const void *  tilePSend,
const void *  tilePRecv,
HitType  baseType,
const char *  file,
int  line 
)

Definition at line 996 of file hit_com.c.

void hit_comAllowDim ( HitLayout lay,
int  dim 
)

hit_comAllowDim: enables the collective dimension communications preparing resources to communicate with hit_com{Broadcast,Reduce}Dim with a specific dimension.

Parameters
layPointer to the layout.
dimDimension to enable the dimension communications.

Definition at line 367 of file hit_com.c.

Here is the call graph for this function:

HitCom hit_comAlltoallSelect ( HitLayout  lay,
const void *  tilePSend,
HitShape  selectionSend,
int  modeSelectSend,
const void *  tilePRecv,
HitShape  selectionRecv,
int  modeSelectRecv,
HitType  baseType,
int  count 
)

hit_comAlltoallSelect: Perform a all to all communication.

Parameters
layLayout.
tilePSendPointer to the HitTile to send
selectionSendHitShape to applied to the send tile
modeSelectSendConstant indicating if the send tile is selected in tile or array coordinates
tilePRecvPointer to the HitTile to receive. It must be of the same type that tilePSendç
selectionRecvHitShape to applied to the receive tile
modeSelectRecvConstant indicating if the receive tile is selected in tile or array coordinates
baseTypeBasic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...)
countNumber of elements to send/receive.
Returns
HitCom communication structure.

Definition at line 834 of file hit_com.c.

HitCom hit_comAlltoallSelectv ( HitLayout  lay,
const void *  tilePSend,
HitShape selectionSend,
int  modeSelectSend,
const void *  tilePRecv,
HitShape selectionRecv,
int  modeSelectRecv,
HitType  baseType 
)

hit_comAlltoallv: Perform a all to all v communication.

Parameters
layLayout.
tilePSendPointer to the HitTile to send
selectionSendHitShape to applied to the send tile
modeSelectSendConstant indicating if the send tile is selected in tile or array coordinates
tilePRecvPointer to the HitTile to receive. It must be of the same type that tilePSendç
selectionRecvHitShape to applied to the receive tile
modeSelectRecvConstant indicating if the receive tile is selected in tile or array coordinates
baseTypeBasic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...)
Returns
HitCom communication structure.

Definition at line 896 of file hit_com.c.

HitCom hit_comBroadcastDimSelect ( HitLayout  lay,
int  dim,
int  root,
const void *  tile,
HitShape  selection,
int  modeSelect,
HitType  baseType 
)

hit_comBroadcastDimSelect: creates a communication for a one-dimensional broadcast communication In this function a selection is applied to the tile to obtain the elements to communicate

Parameters
laylayout
dimdimension where the broadcast will be applied. It should be lower than the dimensions of the layout
rootRank coordinate in the selected dimension of the process that will send
tilePointer to the HitTile to send or receive
selectionHitShape to applied to the tile
modeSelectConstant indicating if the tile is selected in tile or array coordinates
baseTypeBasic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...)
Returns
HitCom communication structure

Definition at line 779 of file hit_com.c.

Here is the call graph for this function:

Here is the caller graph for this function:

HitCom hit_comBroadcastSelect ( HitLayout  lay,
HitRanks  root,
const void *  tile,
HitShape  selection,
int  modeSelect,
HitType  baseType 
)

hit_comBroadcastSelect: creates a communication for a broadcast communication In this function a selection is applied to the tile to obtain the elements to communicate

Parameters
laylayout
rootHitRanks coordinates of the process that will send
tilePointer to the HitTile to send or receive
selectionHitShape to applied to the tile
modeSelectConstant indicating if the tile is selected in tile or array coordinates
baseTypeBasic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...)
Returns
HitCom communication structure

Definition at line 731 of file hit_com.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void hit_comDo ( HitCom issue)

hit_comDo: do a communication. It checks the communication type to select the apropiate function.

Parameters
issuepointer to HitCom communication.

Definition at line 2408 of file hit_com.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void hit_comDoAllGatherv ( HitCom issue)

Definition at line 2391 of file hit_com.c.

Here is the caller graph for this function:

void hit_comDoAlltoall ( HitCom issue)

hit_comDoAlltoall: perform an all-to-all communication

Parameters
issuepointer to the communication

Definition at line 2155 of file hit_com.c.

Here is the caller graph for this function:

void hit_comDoAlltoallv ( HitCom issue)

hit_comDoAlltoallv: perform an all-to-all v communication

Parameters
issuepointer to the communication

Definition at line 2165 of file hit_com.c.

Here is the caller graph for this function:

void hit_comDoBroadcast ( HitCom issue)

hit_comDoBroascast: perform a broadcast communication

Parameters
issuepointer to the communication

Definition at line 2143 of file hit_com.c.

Here is the caller graph for this function:

void hit_comDoRecv ( HitCom issue)

hit_comDoRecv: receive in a send-receive communication

Parameters
issuepointer to the communication

Definition at line 2084 of file hit_com.c.

Here is the caller graph for this function:

void hit_comDoReduce ( HitCom issue)

hit_comDoReduce: perform a reduce communication

Parameters
issuepointer to the communication

Definition at line 2126 of file hit_com.c.

Here is the caller graph for this function:

void hit_comDoSend ( HitCom issue)

hit_comDoSend: send in a send-receive communication

Parameters
issuepointer to the communication

Definition at line 2073 of file hit_com.c.

void hit_comDoSendRecvReplace ( HitCom issue)

hit_comDoSendRecvReplace: perform a Sendrecv_replace communication

Parameters
issuepointer to the communication

Definition at line 2116 of file hit_com.c.

Here is the caller graph for this function:

void hit_comDoSparseScatter ( HitCom issue)

Definition at line 2276 of file hit_com.c.

Here is the caller graph for this function:

void hit_comDoSparseScatterRows ( HitCom issue)

Definition at line 2327 of file hit_com.c.

Here is the caller graph for this function:

void hit_comDoSparseUpdate ( HitCom issue)

hit_comDoSparseUpdate: perform a sparse update communication.

Parameters
issuepointer to the communication.

Definition at line 2259 of file hit_com.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void hit_comDoSparseUpdateBitmap ( HitCom issue)

Definition at line 2217 of file hit_com.c.

Here is the caller graph for this function:

void hit_comDoSparseUpdateCSR ( HitCom issue)

Definition at line 2174 of file hit_com.c.

Here is the caller graph for this function:

void hit_comEndRecv ( HitCom issue)

hit_comEndRecv: end to receive in a send-receive communication

Parameters
issuepointer to the communication

Definition at line 2104 of file hit_com.c.

void hit_comEndSend ( HitCom issue)

hit_comEndSend: end to send in a send-receive communication

Parameters
issuepointer to the communication

Definition at line 2062 of file hit_com.c.

Here is the caller graph for this function:

void hit_comFinalize ( )

hit_comFinalize finalizes the communication environment freeing all internal resources

Definition at line 159 of file hit_com.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void hit_comFree ( HitCom  issue)

hit_comFree: frees the resources of a communication structure

Parameters
issuecommunication

Definition at line 1995 of file hit_com.c.

Here is the caller graph for this function:

void hit_comInit ( int *  pargc,
char **  pargv[] 
)

hit_comInit: initializes the communication environment

Parameters
pargcpointer to the counter arguments of the main routine
pargvpointer to the arguments of the main routine

Definition at line 111 of file hit_com.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void hit_comOpGenericAnyType ( void *  in,
void *  inout,
HitType  datatype,
int  offset,
size_t  tam,
HitComOpFunction  f 
)

hit_comOpGenericAnyType

See Also
creation of operations

Definition at line 2552 of file hit_com.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void hit_comOpMaxDouble ( void *  ,
void *  ,
int *  ,
HitType  
)

hit_comOpMaxDouble: defined operation to calculate the maximum value in tiles of doubles. You must use hit_comOp before use it, and hit_comOpFree at the end of the program.

See Also
creation of operations.

Definition at line 2671 of file hit_com.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void hit_comOpMaxDoubleBasic ( void *  in,
void *  inout 
)

hit_comOpMaxDoubleBasic: basic maximum double operation.

Parameters
inPointer to the first operator.
inoutPointer to the second and return operator.

Definition at line 2478 of file hit_com.c.

Here is the caller graph for this function:

void hit_comOpMaxInt ( void *  ,
void *  ,
int *  ,
HitType  
)

hit_comOpMaxInt: defined operation to calculate the max value in tiles. You must use hit_comOp before use it, and hit_comOpFree at the end of the program.

See Also
creation of operations.

Definition at line 2687 of file hit_com.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void hit_comOpMaxIntBasic ( void *  in,
void *  inout 
)

hit_comOpMaxIntBasic: basic maximum int operation.

Parameters
inPointer to the first operator.
inoutPointer to the second and return operator.

Definition at line 2526 of file hit_com.c.

Here is the caller graph for this function:

void hit_comOpMinDouble ( void *  ,
void *  ,
int *  ,
HitType  
)

hit_comOpMinDouble: defined operation to calculate the minimum value in tiles of doubles. You must use hit_comOp before use it, and hit_comOpFree at the end of the program.

See Also
creation of operations.

Definition at line 2677 of file hit_com.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void hit_comOpMinDoubleBasic ( void *  in,
void *  inout 
)

hit_comOpMinDoubleBasic: basic minimum double operation.

Parameters
inPointer to the first operator.
inoutPointer to the second and return operator.

Definition at line 2495 of file hit_com.c.

Here is the caller graph for this function:

void hit_comOpMinInt ( void *  ,
void *  ,
int *  ,
HitType  
)

hit_comOpMinInt: defined operation to calculate the min value in tiles. You must use hit_comOp before use it, and hit_comOpFree at the end of the program.

See Also
creation of operations.

Definition at line 2691 of file hit_com.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void hit_comOpMinIntBasic ( void *  in,
void *  inout 
)

hit_comOpMinIntBasic: basic minimum int operation.

Parameters
inPointer to the first operator.
inoutPointer to the second and return operator.

Definition at line 2541 of file hit_com.c.

Here is the caller graph for this function:

void hit_comOpSumDouble ( void *  ,
void *  ,
int *  ,
HitType  
)

hit_comOpSumDouble: defined operation to add tiles of doubles You must use hit_comOp before use it, and hit_comOpFree at the end of the program.

See Also
creation of operations.

Definition at line 2665 of file hit_com.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void hit_comOpSumDoubleBasic ( void *  in,
void *  inout 
)

hit_comOpSumDoubleBasic: basic sum double operation.

Parameters
inPointer to the first operator.
inoutPointer to the second and return operator.

Definition at line 2460 of file hit_com.c.

Here is the caller graph for this function:

void hit_comOpSumInt ( void *  ,
void *  ,
int *  ,
HitType  
)

hit_comOpSumInt: defined operation to calculate the sum value in tiles. You must use hit_comOp before use it, and hit_comOpFree at the end of the program.

See Also
creation of operations.

Definition at line 2683 of file hit_com.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void hit_comOpSumIntBasic ( void *  in,
void *  inout 
)

hit_comOpSumIntBasic: basic sum integer operation.

Parameters
inPointer to the first operator.
inoutPointer to the second and return operator.

Definition at line 2512 of file hit_com.c.

Here is the caller graph for this function:

HitCom hit_comReduceDimSelect ( HitLayout  lay,
int  dim,
HitRanks  root,
const void *  tilePSend,
HitShape  selectionSend,
int  modeSelectSend,
const void *  tilePRecv,
HitShape  selectionRecv,
int  modeSelectRecv,
HitType  baseType,
HitOp  operation 
)

hit_comReduceDimSelect: creates a communication for a one-dimensional reduce communication. If root is null all processes get the result data. In this function a selection is applied to the tiles to obtain the elements to communicate

Parameters
laylayout
dimdimension where the broadcast will be applied. It should be lower than the dimensions of the layout
rootHitRanks coordinates of the process that will receive the final data
tilePSendPointer to the HitTile to send
selectionSendHitShape to applied to the send tile
modeSelectSendConstant indicating if the send tile is selected in tile or array coordinates
tilePRecvPointer to the HitTile to receive. It must be of the same type that tilePSendç
selectionRecvHitShape to applied to the receive tile
modeSelectRecvConstant indicating if the receive tile is selected in tile or array coordinates
baseTypeBasic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...)
operationHitOp created to reduce the elements of the tile
See Also
hit_comOpCreate
Returns
HitCom communication structure

Definition at line 660 of file hit_com.c.

Here is the call graph for this function:

Here is the caller graph for this function:

HitCom hit_comReduceSelect ( HitLayout  lay,
HitRanks  root,
const void *  tilePSend,
HitShape  selectionSend,
int  modeSelectSend,
const void *  tilePRecv,
HitShape  selectionRecv,
int  modeSelectRecv,
HitType  baseType,
HitOp  operation 
)

hit_comReduceSelect: creates a communication for a reduce communication. If root is null all processes get the result data. In this function a selection is applied to the tiles to obtain the elements to communicate

Parameters
laylayout
rootHitRanks coordinates of the process that will receive the final data
tilePSendPointer to the HitTile to send
selectionSendHitShape to applied to the send tile
modeSelectSendConstant indicating if the send tile is selected in tile or array coordinates
tilePRecvPointer to the HitTile to receive. It must be of the same type that tilePSend
selectionRecvHitShape to applied to the receive tile
modeSelectRecvConstant indicating if the receive tile is selected in tile or array coordinates
baseTypeBasic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...)
operationHitOp created to reduce the elements of the tile
See Also
hit_comOpCreate
Returns
HitCom communication structure

Definition at line 585 of file hit_com.c.

Here is the call graph for this function:

void* hit_comSearchData ( const void *  varP)
inline

hit_comSearchData: Return the data pointer of a tile. In case it is a multilevel tile it returns the data pointer of the first leaf tile. This pointer is used along with the MPI derived type (recursively built for multilevel tiles) to find all the data of any kind of tile.

Parameters
varPTile pointer.
Returns
Data pointer.

Definition at line 278 of file hit_com.c.

Here is the caller graph for this function:

HitCom hit_comSendRecvReplaceSelectTag ( HitLayout  lay,
HitRanks  sendTo,
const void *  tileP,
HitShape  selection,
int  modeSelect,
HitRanks  receiveFrom,
HitType  baseType,
int  tag 
)

hit_comSendRecvReplaceSelectTag: Sends and receives using a single buffer.

Parameters
laylayout.
sendToHitRanks coordinates of the process that will send.
tilePPointer to the HitTile to send and receive.
selectionHitShape to applied to the tile.
modeSelectConstant indicating if the tile is selected in tile or array coordinates.
receiveFromHitRanks coordinates of the process that will receive
baseTypeBasic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...).
tagTag of the communication.
Returns
HitCom communication structure.

Definition at line 393 of file hit_com.c.

Here is the call graph for this function:

HitCom hit_comSendRecvSelectTag ( HitLayout  lay,
HitRanks  sendTo,
const void *  tilePSend,
HitShape  selectionSend,
int  modeSelectSend,
HitRanks  receiveFrom,
const void *  tilePRecv,
HitShape  selectionRecv,
int  modeSelectRecv,
HitType  baseType,
int  tag 
)

hit_comSendRecvSelectTag: creates a communication with tag for a send-receive pair communication In this function a selection is applied to each tile to obtain the elements to communicate

Parameters
laylayout
sendToHitRanks coordinates of the process that will receive
tilePSendPointer to the HitTile to send
selectionSendHitShape to applied to the send tile
modeSelectSendConstant indicating if the send tile is selected in tile or array coordinates
receiveFromHitRanks coordinates of the process from which to receive
tilePRecvPointer to the HitTile to receive
selectionRecvHitShape to applied to the receive tile
modeSelectRecvConstant indicating if the receive tile is selected in tile or array coordinates
baseTypeBasic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...)
tagTag of the communication
Returns
HitCom communication structure

Definition at line 450 of file hit_com.c.

Here is the call graph for this function:

Here is the caller graph for this function:

HitCom hit_comSparseScatterInternal ( HitLayout  lay,
const void *  tilePSend,
const void *  tilePRecv,
HitType  baseType,
const char *  file,
int  line 
)

Definition at line 1543 of file hit_com.c.

HitCom hit_comSparseScatterRowsInternal ( HitLayout  lay,
const void *  tilePSend,
const void *  tilePRecv,
HitType  baseType,
const char *  file,
int  line 
)

Definition at line 1764 of file hit_com.c.

HitCom hit_comSparseUpdate ( HitLayout  lay,
const void *  tileP,
HitType  baseType 
)

Performs a sparse update communication. In a sparse update communication, each processor sends the vertices uses by its neighbors and updates the values of its own neighbor vertices. This communication uses an alltoallv mpi communication.

Parameters
layLayout.
tilePPointer to the HitTile.
baseTypeBasic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...).
Returns
HitCom communication structure.

Definition at line 1084 of file hit_com.c.

Here is the call graph for this function:

Here is the caller graph for this function:

HitCom hit_comSparseUpdateBitmap ( HitLayout  lay,
const void *  tileP,
HitType  baseType 
)

Definition at line 1324 of file hit_com.c.

Here is the caller graph for this function:

HitCom hit_comSparseUpdateCSR ( HitLayout  lay,
const void *  tileP,
HitType  baseType 
)

Definition at line 1109 of file hit_com.c.

Here is the caller graph for this function:

void hit_comStartRecv ( HitCom issue)

hit_comStartRecv: start to receive in a send-receive communication

Parameters
issuepointer to the communication

Definition at line 2094 of file hit_com.c.

Here is the caller graph for this function:

void hit_comStartSend ( HitCom issue)

hit_comStartSend: start to send in a send-receive communication

Parameters
issuepointer to the communication

Definition at line 2051 of file hit_com.c.

Here is the caller graph for this function:

HitType hit_comType ( const void *  varP,
HitType  baseType 
)

hit_comType: create a MPI derived datatype.

Parameters
varPPointer to a HitTile.
baseTypeHitTile base type.
Returns
The derived datatype.

Definition at line 189 of file hit_com.c.

Here is the caller graph for this function:

HitType hit_comTypeRec ( const void *  varP,
HitType  baseType 
)

hit_comTypeRec: recursive creation of MPI derived datatypes for hierarchical tiles.

Parameters
varPPointer to a HitTile.
baseTypeHitTile base type.
Returns
The derived datatype.

Definition at line 290 of file hit_com.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void hit_comUpdateOriginData ( HitCom com,
const void *  tileP 
)

hit_comUpdateOriginData: updates the origin data of a communication. Its used to change the tile in a sparse update communication.

Parameters
comA pointer to the communication.
tilePThe new tile pointer with the origin data.

Definition at line 1985 of file hit_com.c.

Here is the caller graph for this function:

Variable Documentation

Hit COM alltoallv: NULL VALUE for HitComAlltoallv.

Definition at line 59 of file hit_com.c.

HitCom HIT_COM_NULL = HIT_COM_NULL_STATIC

Hit COM: NULL VALUE

Definition at line 58 of file hit_com.c.

Hit COM sparse: NULL VALUE for HitComSparse.

Definition at line 60 of file hit_com.c.

HitOp HIT_OP_MAX_DOUBLE

Definition at line 68 of file hit_com.c.

HitOp HIT_OP_MAX_INT

Definition at line 65 of file hit_com.c.

HitOp HIT_OP_MIN_DOUBLE

Definition at line 67 of file hit_com.c.

HitOp HIT_OP_MIN_INT

Definition at line 64 of file hit_com.c.

HitOp HIT_OP_SUM_DOUBLE

Definition at line 66 of file hit_com.c.

HitOp HIT_OP_SUM_INT

Definition at line 63 of file hit_com.c.

HitType HIT_SHAPE_SIG

Extra HitTypes committed in initialization.

Definition at line 71 of file hit_com.c.

MPI_Errhandler mpi_errhandler

Definition at line 74 of file hit_com.c.