Hitmap 1.3
|
#include <stdio.h>
#include "hit_mpi.h"
#include "hit_error.h"
#include "hit_tile.h"
#include "hit_layout.h"
#include "hit_allocP.h"
#include "hit_comTypeStruct.h"
Go to the source code of this file.
Data Structures | |
struct | HitCom |
struct | HitComAlltoallv |
struct | HitComSparse |
Macros | |
#define | hit_mpiTestError(ok, cad) |
#define | HIT_CHAR MPI_CHAR |
#define | HIT_INT MPI_INT |
#define | HIT_FLOAT MPI_FLOAT |
#define | HIT_DOUBLE MPI_DOUBLE |
#define | HIT_BOOL MPI_BOOL |
#define | HIT_COMTYPE_NULL 0 |
#define | HIT_SENDRECV 3 |
#define | HIT_REDUCE 4 |
#define | HIT_ALLREDUCE 5 |
#define | HIT_ALLTOALL 6 |
#define | HIT_ALLTOALLV 7 |
#define | HIT_BROADCAST 8 |
#define | HIT_SENDRECV_REPLACE 9 |
#define | HIT_SPARSE_UPDATE 10 |
#define | HIT_SPARSE_SCATTER 11 |
#define | HIT_ALLDISTRIBUTE 12 |
#define | HIT_SPARSE_SCATTER_ROWS 13 |
#define | HIT_ALLGATHERV 14 |
#define | HIT_ANY_TAG 0 |
#define | HIT_COM_MYSELF -100 |
#define | hit_Rank (HIT_TOPOLOGY_INFO->selfRank) |
#define | hit_NProcs (HIT_TOPOLOGY_INFO->numProcs) |
#define | hit_Comm (HIT_TOPOLOGY_INFO->comm) |
#define | HIT_TYPE_NULL MPI_DATATYPE_NULL |
#define | hit_comFreeType(type) if (type!=HIT_TYPE_NULL) MPI_Type_free( &type ); |
#define | hit_comTypeStruct(new_type, Nstruct, n,...) hit_comTypeStruct##n(new_type,Nstruct,__VA_ARGS__) |
#define | HIT_COM_NULL_STATIC |
#define | HIT_COM_ALLTOALLV_NULL_STATIC {NULL,NULL,NULL,NULL,NULL} |
#define | HIT_COM_SPARSE_NULL_STATIC {HIT_SHAPE_NULL_STATIC, NULL, NULL, NULL, 0, 0, 0, NULL} |
#define | HIT_COM_TILECOORDS 0x43 |
#define | HIT_COM_ARRAYCOORDS 0x44 |
#define | hit_comSendRecv(lay, sendTo, tilePSend, receiveFrom, tilePRecv, baseType) hit_comSendRecvSelect(lay, sendTo, tilePSend, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, receiveFrom, tilePRecv, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, baseType) |
#define | hit_comSendRecvTag(lay, sendTo, tilePSend, receiveFrom, tilePRecv, baseType, tag) hit_comSendRecvSelectTag(lay, sendTo, tilePSend, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, receiveFrom, tilePRecv, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, baseType, tag) |
#define | hit_comSendRecvSelect(lay, sendTo, tilePSend, selectionSend, modeSelectSend, receiveFrom, tilePRecv, selectionRecv, modeSelectRecv, baseType) hit_comSendRecvSelectTag(lay, sendTo, tilePSend, selectionSend, modeSelectSend, receiveFrom, tilePRecv, selectionRecv, modeSelectRecv, baseType, HIT_ANY_TAG) |
#define | hit_comSendSelectTag(lay, sendTo, tileP, selection, modeSelect, baseType, tag) hit_comSendRecvSelectTag(lay, sendTo, tileP, selection, modeSelect, HIT_RANKS_NULL, &HIT_TILE_NULL, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, baseType, tag) |
#define | hit_comSendTag(lay, sendTo, tileP, baseType, tag) hit_comSendRecvSelectTag(lay, sendTo, tileP, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, HIT_RANKS_NULL, &HIT_TILE_NULL, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, baseType, tag) |
#define | hit_comSendSelect(lay, sendTo, tileP, selection, modeSelect, baseType) hit_comSendRecvSelect(lay, sendTo, tileP, selection, modeSelect, HIT_RANKS_NULL, &HIT_TILE_NULL, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, baseType) |
#define | hit_comSend(lay, sendTo, tileP, baseType) hit_comSendRecvSelect(lay, sendTo, tileP, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, HIT_RANKS_NULL, &HIT_TILE_NULL, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, baseType) |
#define | hit_comRecvSelectTag(lay, receiveFrom, tileP, selection, modeSelect, baseType, tag) hit_comSendRecvSelectTag(lay, HIT_RANKS_NULL, &HIT_TILE_NULL, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, receiveFrom, tileP, selection, modeSelect, baseType, tag) |
#define | hit_comRecvTag(lay, receiveFrom, tileP, baseType, tag) hit_comSendRecvSelect(lay, HIT_RANKS_NULL, &HIT_TILE_NULL, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, receiveFrom, tileP, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, baseType, tag) |
#define | hit_comRecvSelect(lay, receiveFrom, tileP, selection, modeSelect, baseType) hit_comSendRecvSelect(lay, HIT_RANKS_NULL, &HIT_TILE_NULL, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, receiveFrom, tileP, selection, modeSelect, baseType) |
#define | hit_comRecv(lay, receiveFrom, tileP, baseType) hit_comSendRecvSelect(lay, HIT_RANKS_NULL, &HIT_TILE_NULL, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, receiveFrom, tileP, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, baseType) |
#define | hit_comUpdateSendTile(comm, sendTile) comm.dataSend=sendTile.data |
#define | hit_comUpdateRecvTile(comm, recvTile) comm.dataRecv=recvTile.data |
#define | hit_comUpdateSendTo(comm, topo, SendTo) comm.sendTo=hit_topRankInternal(topo,SendTo) |
#define | hit_comUpdateRecvFrom(comm, topo, RecvFrom) comm.recvFrom=hit_topRankInternal(topo,RecvFrom) |
#define | hit_comUpdateDimSendTo(comm, dim, SendTo) comm.sendTo=SendTo |
#define | hit_comUpdateDimRecvFrom(comm, dim, RecvFrom) comm.recvFrom=RecvFrom |
#define | hit_comUpdateTag(comm, Tag) comm.tag=Tag |
#define | hit_comAllowDims(lay) |
#define | hit_comShiftDimSelect(lay, dim, shift, tileP, selection, modeSelect, baseType, tag) hit_comSendRecvReplaceSelectTag(lay, hit_layNeighbor(lay,dim,shift), tileP, selection, modeSelect, hit_layNeighbor(lay,dim,-shift), baseType, tag) |
#define | hit_comShiftDim(lay, dim, shift, tileP, baseType) hit_comShiftDimSelect(lay, dim, shift, tileP, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, baseType, HIT_ANY_TAG) |
#define | hit_comShiftDimAsync(lay, dim, shift, tileSend, tileRecv, baseType, tag) hit_comSendRecvTag(lay, hit_layNeighbor( lay, dim, shift ), tileSend, hit_layNeighbor( lay, dim, -shift ), tileRecv, baseType, tag) |
#define | hit_comBroadcast(lay, root, tile, baseType) hit_comBroadcastSelect(lay, root, tile, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, baseType) |
#define | hit_comBroadcastDim(lay, dim, root, tile, baseType) hit_comBroadcastDimSelect(lay, dim, root, tile, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, baseType) |
#define | hit_comReduce(lay, root, tilePSend, tilePRecv, baseType, operation) hit_comReduceSelect(lay, root, tilePSend, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, tilePRecv, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, baseType, operation) |
#define | hit_comReduceDim(lay, dim, root, tilePSend, tilePRecv, baseType, operation) hit_comReduceDimSelect(lay, dim, root, tilePSend, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, tilePRecv, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, baseType, operation) |
#define | hit_comAlltoall(lay, tilePSend, tilePRecv, baseType, count) hit_comAlltoallSelect(lay, tilePSend, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, tilePRecv, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, baseType, count) |
#define | hit_comAlltoallv(lay, tilePSend, selectionSend, tilePRecv, selectionRecv, baseType) hit_comAlltoallSelectv(lay, tilePSend, selectionSend, HIT_COM_TILECOORDS, tilePRecv, selectionRecv, HIT_COM_TILECOORDS, baseType) |
#define | hit_comSparseScatter(lay, tilePSend, tilePRecv, baseType) hit_comSparseScatterInternal(lay, tilePSend, tilePRecv, baseType, __FILE__, __LINE__) |
#define | hit_comSparseScatterRows(lay, tilePSend, tilePRecv, baseType) hit_comSparseScatterRowsInternal(lay, tilePSend, tilePRecv, baseType, __FILE__, __LINE__) |
#define | hit_comAllGatherv(lay, tilePSend, tilePRecv, baseType) hit_comAllGathervInternal(lay, tilePSend, tilePRecv, baseType, __FILE__, __LINE__) |
#define | hit_comTagSet(...) enum { __VA_ARGS__ } |
#define | hit_comDoSendRecv(comm) |
#define | hit_comDoOnce(com) { HitCom __HIT_COM__ = com; hit_comDo( & __HIT_COM__ ); hit_comFree( __HIT_COM__ ); } |
#define | hit_error(name, file, numLine) |
#define | hit_comBarrier(lay) MPI_Barrier( lay.pTopology[0]->comm ) |
#define | hit_comOp(function, operation) MPI_Op_create((HitReduceFunction *)function, 1, &(operation) ); |
#define | hit_comOpNoCommutative(function, operation) MPI_Op_create(function, 0, &(operation) ); |
#define | hit_comOpFree(operation) MPI_Op_free( &(operation) ); |
Typedefs | |
typedef MPI_Datatype | HitType |
typedef MPI_Aint | HitAint |
typedef MPI_Op | HitOp |
typedef MPI_User_function | HitReduceFunction |
typedef struct HitComAlltoallv | HitComAlltoallv |
typedef struct HitComSparse | HitComSparse |
typedef void(* | HitComOpFunction )(void *, void *) |
Functions | |
void | hit_comInit (int *pargc, char **pargv[]) |
void | hit_comFinalize () |
HitType | hit_comType (const void *varP, HitType baseType) |
HitType | hit_comTypeRec (const void *varP, HitType baseType) |
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) |
void | hit_comUpdateOriginData (HitCom *com, const void *tileP) |
void | hit_comAllowDim (HitLayout *lay, int dim) |
HitCom | hit_comSendRecvReplaceSelectTag (HitLayout lay, HitRanks sendTo, const void *tileP, HitShape selection, int modeSelect, HitRanks receiveFrom, HitType baseType, int tag) |
HitCom | hit_comBroadcastSelect (HitLayout lay, HitRanks root, const void *tile, HitShape selection, int modeSelect, HitType baseType) |
HitCom | hit_comBroadcastDimSelect (HitLayout lay, int dim, int root, const void *tile, HitShape selection, int modeSelect, HitType baseType) |
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) |
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) |
HitCom | hit_comAlltoallSelect (HitLayout lay, const void *tilePSend, HitShape selectionSend, int modeSelectSend, const void *tilePRecv, HitShape selectionRecv, int modeSelectRecv, HitType baseType, int count) |
HitCom | hit_comAlltoallSelectv (HitLayout lay, const void *tilePSend, HitShape *selectionSend, int modeSelectSend, const void *tilePRecv, HitShape *selectionRecv, int modeSelectRecv, HitType baseType) |
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_comSparseScatterRowsInternal (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_comAllGathervInternal (HitLayout lay, const void *tilePSend, const void *tilePRecv, HitType baseType, const char *file, int line) |
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_comDoAlltoall (HitCom *issue) |
void | hit_comDoAlltoallv (HitCom *issue) |
void | hit_comDoReduce (HitCom *issue) |
void | hit_comDoBroadcast (HitCom *issue) |
void | hit_comDoSparseUpdate (HitCom *issue) |
void | hit_comDo (HitCom *issue) |
void | hit_comOpSumDouble (void *, void *, int *, HitType *) |
void | hit_comOpMaxDouble (void *, void *, int *, HitType *) |
void | hit_comOpMinDouble (void *, void *, int *, HitType *) |
void | hit_comOpSumInt (void *, void *, int *, HitType *) |
void | hit_comOpMinInt (void *, void *, int *, HitType *) |
void | hit_comOpMaxInt (void *, void *, int *, HitType *) |
void | hit_comOpGenericAnyType (void *in, void *inout, HitType datatype, int offset, size_t tam, HitComOpFunction f) |
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.
Definition in file hit_com.h.
#define HIT_ALLREDUCE 5 |
#define HIT_ALLTOALL 6 |
#define HIT_ALLTOALLV 7 |
#define HIT_ANY_TAG 0 |
#define HIT_BROADCAST 8 |
#define HIT_COM_ALLTOALLV_NULL_STATIC {NULL,NULL,NULL,NULL,NULL} |
Hit COM alltoallv: NULL STATIC VALUE for HitComAlltoallv.
#define HIT_COM_ARRAYCOORDS 0x44 |
#define HIT_COM_MYSELF -100 |
#define HIT_COM_NULL_STATIC |
Hit COM: Static null value
#define HIT_COM_SPARSE_NULL_STATIC {HIT_SHAPE_NULL_STATIC, NULL, NULL, NULL, 0, 0, 0, NULL} |
Hit COM sparse: NULL STATIC VALUE for HitComSparse.
#define HIT_COM_TILECOORDS 0x43 |
#define hit_comAllGatherv | ( | lay, | |
tilePSend, | |||
tilePRecv, | |||
baseType | |||
) | hit_comAllGathervInternal(lay, tilePSend, tilePRecv, baseType, __FILE__, __LINE__) |
#define hit_comAllowDims | ( | lay | ) |
hit_comAllowDims: prepare resources to communicate with hit_com{Broadcast,Reduce}Dim It creates the low level communicator to allow collective dim communications for all dimensions
lay | The Layout |
#define hit_comAlltoall | ( | lay, | |
tilePSend, | |||
tilePRecv, | |||
baseType, | |||
count | |||
) | hit_comAlltoallSelect(lay, tilePSend, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, tilePRecv, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, baseType, count) |
hit_comAlltoall: Perform a all to all communication.
lay | Layout. |
tilePSend | Pointer to the HitTile to send |
tilePRecv | Pointer to the HitTile to receive. It must be of the same type that tilePSendç |
baseType | Basic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...) |
count | Number of elements to send/receive. |
#define hit_comAlltoallv | ( | lay, | |
tilePSend, | |||
selectionSend, | |||
tilePRecv, | |||
selectionRecv, | |||
baseType | |||
) | hit_comAlltoallSelectv(lay, tilePSend, selectionSend, HIT_COM_TILECOORDS, tilePRecv, selectionRecv, HIT_COM_TILECOORDS, baseType) |
hit_comAlltoallv: Perform a all to all v communication.
lay | Layout. |
tilePSend | Pointer to the HitTile to send |
selectionSend | HitShape to applied to the send tile |
tilePRecv | Pointer to the HitTile to receive. It must be of the same type that tilePSendç |
selectionRecv | HitShape to applied to the receive tile |
baseType | Basic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...) |
#define hit_comBroadcast | ( | lay, | |
root, | |||
tile, | |||
baseType | |||
) | hit_comBroadcastSelect(lay, root, tile, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, baseType) |
hit_comBroadcast: creates a communication for a broadcast communication In this function all the elements of the tiles are communicated
lay | layout |
root | HitRanks coordinates of the process that will send |
tile | Pointer to the HitTile to send or receive |
baseType | Basic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...) |
#define hit_comBroadcastDim | ( | lay, | |
dim, | |||
root, | |||
tile, | |||
baseType | |||
) | hit_comBroadcastDimSelect(lay, dim, root, tile, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, baseType) |
hit_comBroadcastDim: creates a communication for a one-dimensional broadcast communication In this function all the elements of the tiles are communicated
lay | layout |
dim | dimension where the broadcast will be applied. It should be lower than the dimensions of the layout |
root | Rank coordinate in the selected dimension of the process that will send |
tile | Pointer to the HitTile to send or receive |
baseType | Basic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...) |
#define hit_comDoOnce | ( | com | ) | { HitCom __HIT_COM__ = com; hit_comDo( & __HIT_COM__ ); hit_comFree( __HIT_COM__ ); } |
#define hit_comDoSendRecv | ( | comm | ) |
hit_comDo: do a communication (send and receive) in a send-receive communication
comm | communication |
#define hit_comFreeType | ( | type | ) | if (type!=HIT_TYPE_NULL) MPI_Type_free( &type ); |
#define hit_Comm (HIT_TOPOLOGY_INFO->comm) |
#define hit_comOp | ( | function, | |
operation | |||
) | MPI_Op_create((HitReduceFunction *)function, 1, &(operation) ); |
#define hit_comOpFree | ( | operation | ) | MPI_Op_free( &(operation) ); |
#define hit_comOpNoCommutative | ( | function, | |
operation | |||
) | MPI_Op_create(function, 0, &(operation) ); |
hit_comOpNoCommutative: creates a new no-conmutative HitOp operation. Used in reductions.
function | no-conmutative function to create the operator. Operator function prototype should be ( void * a, void * b, int * len, HitType * ) |
operation | HitOp operation to create |
#define hit_comRecv | ( | lay, | |
receiveFrom, | |||
tileP, | |||
baseType | |||
) | hit_comSendRecvSelect(lay, HIT_RANKS_NULL, &HIT_TILE_NULL, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, receiveFrom, tileP, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, baseType) |
hit_comRecvTag: creates a communications for an only-receive communication In this function all the elements of the tile are received
lay | layout |
receiveFrom | HitRanks coordinates of the process that will receive |
tileP | Pointer to the HitTile to receive |
baseType | Basic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...) |
#define hit_comRecvSelect | ( | lay, | |
receiveFrom, | |||
tileP, | |||
selection, | |||
modeSelect, | |||
baseType | |||
) | hit_comSendRecvSelect(lay, HIT_RANKS_NULL, &HIT_TILE_NULL, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, receiveFrom, tileP, selection, modeSelect, baseType) |
hit_comRecvSelect: creates a communications for an only-receive communication In this function a selection is applied to the tile to obtain the elements to receive
lay | layout |
receiveFrom | HitRanks coordinates of the process that will receive |
tileP | Pointer to the HitTile to receive |
selection | HitShape to applied to the receive tile |
modeSelect | Constant indicating if the receive tile is selected in tile or array coordinates * |
baseType | Basic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...) |
#define hit_comRecvSelectTag | ( | lay, | |
receiveFrom, | |||
tileP, | |||
selection, | |||
modeSelect, | |||
baseType, | |||
tag | |||
) | hit_comSendRecvSelectTag(lay, HIT_RANKS_NULL, &HIT_TILE_NULL, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, receiveFrom, tileP, selection, modeSelect, baseType, tag) |
hit_comRecvSelectTag: creates a communications with tag for an only-receive communication In this function a selection is applied to the tile to obtain the elements to receive
lay | layout |
receiveFrom | HitRanks coordinates of the process that will receive |
tileP | Pointer to the HitTile to receive |
selection | HitShape to applied to the receive tile |
modeSelect | Constant indicating if the receive tile is selected in tile or array coordinates |
baseType | Basic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...) |
tag | Tag of the communication |
#define hit_comRecvTag | ( | lay, | |
receiveFrom, | |||
tileP, | |||
baseType, | |||
tag | |||
) | hit_comSendRecvSelect(lay, HIT_RANKS_NULL, &HIT_TILE_NULL, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, receiveFrom, tileP, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, baseType, tag) |
hit_comRecvTag: creates a communications with tag for an only-receive communication In this function all the elements of the tile are received
lay | layout |
receiveFrom | HitRanks coordinates of the process that will receive |
tileP | Pointer to the HitTile to receive |
baseType | Basic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...) |
tag | Tag of the communication |
#define hit_comReduce | ( | lay, | |
root, | |||
tilePSend, | |||
tilePRecv, | |||
baseType, | |||
operation | |||
) | hit_comReduceSelect(lay, root, tilePSend, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, tilePRecv, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, baseType, operation) |
hit_comReduce: creates a communication for a reduce communication. If root is null all processes get the result data. In this function all the elements of the tiles are communicated
lay | layout |
root | HitRanks coordinates of the process that will receive the final data |
tilePSend | Pointer to the HitTile to send |
tilePRecv | Pointer to the HitTile to receive. It must be of the same type that tilePSend |
baseType | Basic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...) |
operation | HitOp created to reduce the elements of the tile |
#define hit_comReduceDim | ( | lay, | |
dim, | |||
root, | |||
tilePSend, | |||
tilePRecv, | |||
baseType, | |||
operation | |||
) | hit_comReduceDimSelect(lay, dim, root, tilePSend, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, tilePRecv, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, baseType, operation) |
hit_comReduceDim: creates a communication for a one-dimensional reduce communication. If root is null all processes get the result data. In this function all the elements of the tiles are communicated
lay | layout |
dim | dimension where the broadcast will be applied. It should be lower than the dimensions of the layout |
root | HitRanks coordinates of the process that will receive the final data |
tilePSend | Pointer to the HitTile to send |
tilePRecv | Pointer to the HitTile to receive. It must be of the same type that tilePSendç |
baseType | Basic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...) |
operation | HitOp created to reduce the elements of the tile |
#define hit_comSend | ( | lay, | |
sendTo, | |||
tileP, | |||
baseType | |||
) | hit_comSendRecvSelect(lay, sendTo, tileP, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, HIT_RANKS_NULL, &HIT_TILE_NULL, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, baseType) |
hit_comSendSelec: creates a communications for an only-send communication In this function all the elements of the tile are sent
lay | layout |
sendTo | HitRanks coordinates of the process that will send |
tileP | Pointer to the HitTile to send |
baseType | Basic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...) |
#define hit_comSendRecv | ( | lay, | |
sendTo, | |||
tilePSend, | |||
receiveFrom, | |||
tilePRecv, | |||
baseType | |||
) | hit_comSendRecvSelect(lay, sendTo, tilePSend, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, receiveFrom, tilePRecv, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, baseType) |
hit_comSendRecv: creates a communication for a send-receive pair communication In this function all the elements of the tiles are communicated
lay | layout |
sendTo | HitRanks coordinates of the process that will receive |
tilePSend | Pointer to the HitTile to send |
receiveFrom | HitRanks coordinates of the process from which to receive |
tilePRecv | Pointer to the HitTile to receive |
baseType | Basic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...) |
#define hit_comSendRecvSelect | ( | lay, | |
sendTo, | |||
tilePSend, | |||
selectionSend, | |||
modeSelectSend, | |||
receiveFrom, | |||
tilePRecv, | |||
selectionRecv, | |||
modeSelectRecv, | |||
baseType | |||
) | hit_comSendRecvSelectTag(lay, sendTo, tilePSend, selectionSend, modeSelectSend, receiveFrom, tilePRecv, selectionRecv, modeSelectRecv, baseType, HIT_ANY_TAG) |
hit_comSendRecvSelect: 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
lay | layout |
sendTo | HitRanks coordinates of the process that will receive |
tilePSend | Pointer to the HitTile to send |
selectionSend | HitShape to applied to the send tile |
modeSelectSend | Constant indicating if the send tile is selected in tile or array coordinates |
receiveFrom | HitRanks coordinates of the process from which to receive |
tilePRecv | Pointer to the HitTile to receive |
selectionRecv | HitShape to applied to the receive tile |
modeSelectRecv | Constant indicating if the send tile is selected in tile or array coordinates |
baseType | Basic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...) |
#define hit_comSendRecvTag | ( | lay, | |
sendTo, | |||
tilePSend, | |||
receiveFrom, | |||
tilePRecv, | |||
baseType, | |||
tag | |||
) | hit_comSendRecvSelectTag(lay, sendTo, tilePSend, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, receiveFrom, tilePRecv, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, baseType, tag) |
hit_comSendRecvTag: creates a communication with tag for a send-receive pair communication In this function all the elements of the tiles are communicated
lay | layout |
sendTo | HitRanks coordinates of the process that will receive |
tilePSend | Pointer to the HitTile to send |
receiveFrom | HitRanks coordinates of the process from which to receive |
tilePRecv | Pointer to the HitTile to receive |
baseType | Basic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...) |
tag | Tag of the communication |
#define hit_comSendSelect | ( | lay, | |
sendTo, | |||
tileP, | |||
selection, | |||
modeSelect, | |||
baseType | |||
) | hit_comSendRecvSelect(lay, sendTo, tileP, selection, modeSelect, HIT_RANKS_NULL, &HIT_TILE_NULL, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, baseType) |
hit_comSendSelec: creates a communications for an only-send communication In this function a selection is applied to the tile to obtain the elements to send
lay | layout |
sendTo | HitRanks coordinates of the process that will receive |
tileP | Pointer to the HitTile to send |
selection | HitShape to applied to the send tile |
modeSelect | Constant indicating if the send tile is selected in tile or array coordinates |
baseType | Basic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...) |
#define hit_comSendSelectTag | ( | lay, | |
sendTo, | |||
tileP, | |||
selection, | |||
modeSelect, | |||
baseType, | |||
tag | |||
) | hit_comSendRecvSelectTag(lay, sendTo, tileP, selection, modeSelect, HIT_RANKS_NULL, &HIT_TILE_NULL, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, baseType, tag) |
hit_comSendSelectTag: creates a communications with tag for an only-send communication In this function a selection is applied to the tile to obtain the elements to send
lay | layout |
sendTo | HitRanks coordinates of the process that will receive |
tileP | Pointer to the HitTile to send |
selection | HitShape to applied to the send tile |
modeSelect | Constant indicating if the send tile is selected in tile or array coordinates |
baseType | Basic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...) |
tag | Tag of the communication |
#define hit_comSendTag | ( | lay, | |
sendTo, | |||
tileP, | |||
baseType, | |||
tag | |||
) | hit_comSendRecvSelectTag(lay, sendTo, tileP, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, HIT_RANKS_NULL, &HIT_TILE_NULL, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, baseType, tag) |
hit_comSendTag: creates a communications with tag for an only-send communication In this function all the elements of the tile are sent
lay | layout |
sendTo | HitRanks coordinates of the process that will receive |
tileP | Pointer to the HitTile to send |
baseType | Basic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...) |
tag | Tag of the communication |
#define hit_comShiftDim | ( | lay, | |
dim, | |||
shift, | |||
tileP, | |||
baseType | |||
) | hit_comShiftDimSelect(lay, dim, shift, tileP, HIT_SHAPE_WHOLE, HIT_COM_TILECOORDS, baseType, HIT_ANY_TAG) |
hit_comShiftDim: creates a communication in which all processes from the same dimension of the layout send and receive a tile. The tile is sent to a neighbor in shift positions right and received (and overwritten) from the neighbor shift positions left. In this function all the elements of the tiles are communicated.
lay | layout. |
dim | dimension of the layout. |
shift | distance to the neighbors to communicate. |
tileP | Pointer to the HitTile to send and receive. |
baseType | Basic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...) |
#define hit_comShiftDimAsync | ( | lay, | |
dim, | |||
shift, | |||
tileSend, | |||
tileRecv, | |||
baseType, | |||
tag | |||
) | hit_comSendRecvTag(lay, hit_layNeighbor( lay, dim, shift ), tileSend, hit_layNeighbor( lay, dim, -shift ), tileRecv, baseType, tag) |
hit_comShiftDimAsync: creates a communication in which all processes from the same dimension of the layout send and receive a tile. The tile is sent to a neighbor in shift positions right and received (and overwritten) from the neighbor shift positions left. In this function all the elements of the tiles are communicated
lay | layout |
dim | dimension of the layout |
shift | distance to the neighbors to communicate |
tileSend | Pointer to the HitTile to send. |
tileRecv | Pointer to the HitTile to receive. |
baseType | Basic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...) |
tag | A tag to identify an asynchronous communication |
#define hit_comShiftDimSelect | ( | lay, | |
dim, | |||
shift, | |||
tileP, | |||
selection, | |||
modeSelect, | |||
baseType, | |||
tag | |||
) | hit_comSendRecvReplaceSelectTag(lay, hit_layNeighbor(lay,dim,shift), tileP, selection, modeSelect, hit_layNeighbor(lay,dim,-shift), baseType, tag) |
hit_comShiftDimSelect: creates a communication in which all processes from the same dimension of the layout send and receive a tile. It allows to select part of a tile The tile is sent to a neighbor in shift positions right and received (and overwritten) from the neighbor shift positions left. In this function a selection is applied to the tile to obtain the elements to communicate
lay | layout |
dim | dimension of the layout |
shift | distance to the neighbors to communicate |
tileP | Pointer to the HitTile to send and receive |
selection | HitShape to applied to the tile |
modeSelect | Constant indicating if the tile is selected in tile or array coordinates |
baseType | Basic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...) |
tag | A tag to allow its use in asynchronous communications |
#define hit_comSparseScatter | ( | lay, | |
tilePSend, | |||
tilePRecv, | |||
baseType | |||
) | hit_comSparseScatterInternal(lay, tilePSend, tilePRecv, baseType, __FILE__, __LINE__) |
#define hit_comSparseScatterRows | ( | lay, | |
tilePSend, | |||
tilePRecv, | |||
baseType | |||
) | hit_comSparseScatterRowsInternal(lay, tilePSend, tilePRecv, baseType, __FILE__, __LINE__) |
#define hit_comTagSet | ( | ... | ) | enum { __VA_ARGS__ } |
#define HIT_COMTYPE_NULL 0 |
#define hit_comTypeStruct | ( | new_type, | |
Nstruct, | |||
n, | |||
... | |||
) | hit_comTypeStruct##n(new_type,Nstruct,__VA_ARGS__) |
#define hit_comUpdateDimRecvFrom | ( | comm, | |
dim, | |||
RecvFrom | |||
) | comm.recvFrom=RecvFrom |
#define hit_comUpdateDimSendTo | ( | comm, | |
dim, | |||
SendTo | |||
) | comm.sendTo=SendTo |
#define hit_comUpdateRecvFrom | ( | comm, | |
topo, | |||
RecvFrom | |||
) | comm.recvFrom=hit_topRankInternal(topo,RecvFrom) |
comm | communication |
topo | topology |
RecvFrom | hit_ranks of the new process that receives |
#define hit_comUpdateRecvTile | ( | comm, | |
recvTile | |||
) | comm.dataRecv=recvTile.data |
hit_comUpdateRecvTile: updates the tile where data is received. Shortcut to create a new communication when the new tile to communicate has the same type.
comm | communication |
recvTile | New tile to receive |
#define hit_comUpdateSendTile | ( | comm, | |
sendTile | |||
) | comm.dataSend=sendTile.data |
hit_comUpdateSendTile: updates the tile from where data is sent. Shortcut to create a new communication when the new tile to communicate has the same type.
comm | communication |
sendTile | New tile to send |
#define hit_comUpdateSendTo | ( | comm, | |
topo, | |||
SendTo | |||
) | comm.sendTo=hit_topRankInternal(topo,SendTo) |
comm | communication |
topo | topology |
SendTo | hit_ranks of the new process that sends |
comm | communication |
Tag | new tag |
#define HIT_DOUBLE MPI_DOUBLE |
#define hit_error | ( | name, | |
file, | |||
numLine | |||
) |
hit_error: prints an error.
name | Error message. |
file | Code file. |
numLine | Line number. |
#define HIT_FLOAT MPI_FLOAT |
#define hit_mpiTestError | ( | ok, | |
cad | |||
) |
This macro checks if the MPI operation was successful.
#define hit_NProcs (HIT_TOPOLOGY_INFO->numProcs) |
#define hit_Rank (HIT_TOPOLOGY_INFO->selfRank) |
#define HIT_SENDRECV 3 |
#define HIT_SENDRECV_REPLACE 9 |
#define HIT_SPARSE_SCATTER 11 |
#define HIT_SPARSE_SCATTER_ROWS 13 |
#define HIT_SPARSE_UPDATE 10 |
typedef struct HitComAlltoallv HitComAlltoallv |
HitComAlltoallv: This struct extends the HitCom struct to allow alltoallv communications.
typedef void(* HitComOpFunction)(void *, void *) |
typedef struct HitComSparse HitComSparse |
HitComSparse: This struct extends the HitComAlltoallv struct to allow sparse updates.
typedef MPI_User_function HitReduceFunction |
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.
lay | The layout with the partition. |
tilePSend | The tile with the partial sets. |
count | The number of elements in each partial set. |
tilePRecv | The tile to reive the complete sets for each processors. |
baseType | The hitmap base type of the data. |
Definition at line 1651 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.
lay | Pointer to the layout. |
dim | Dimension to enable the dimension communications. |
Definition at line 367 of file hit_com.c.
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.
lay | Layout. |
tilePSend | Pointer to the HitTile to send |
selectionSend | HitShape to applied to the send tile |
modeSelectSend | Constant indicating if the send tile is selected in tile or array coordinates |
tilePRecv | Pointer to the HitTile to receive. It must be of the same type that tilePSendç |
selectionRecv | HitShape to applied to the receive tile |
modeSelectRecv | Constant indicating if the receive tile is selected in tile or array coordinates |
baseType | Basic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...) |
count | Number of elements to send/receive. |
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.
lay | Layout. |
tilePSend | Pointer to the HitTile to send |
selectionSend | HitShape to applied to the send tile |
modeSelectSend | Constant indicating if the send tile is selected in tile or array coordinates |
tilePRecv | Pointer to the HitTile to receive. It must be of the same type that tilePSendç |
selectionRecv | HitShape to applied to the receive tile |
modeSelectRecv | Constant indicating if the receive tile is selected in tile or array coordinates |
baseType | Basic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...) |
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
lay | layout |
dim | dimension where the broadcast will be applied. It should be lower than the dimensions of the layout |
root | Rank coordinate in the selected dimension of the process that will send |
tile | Pointer to the HitTile to send or receive |
selection | HitShape to applied to the tile |
modeSelect | Constant indicating if the tile is selected in tile or array coordinates |
baseType | Basic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...) |
Definition at line 779 of file hit_com.c.
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
lay | layout |
root | HitRanks coordinates of the process that will send |
tile | Pointer to the HitTile to send or receive |
selection | HitShape to applied to the tile |
modeSelect | Constant indicating if the tile is selected in tile or array coordinates |
baseType | Basic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...) |
Definition at line 731 of file hit_com.c.
void hit_comDo | ( | HitCom * | issue | ) |
void hit_comDoAlltoall | ( | HitCom * | issue | ) |
void hit_comDoAlltoallv | ( | HitCom * | issue | ) |
void hit_comDoBroadcast | ( | HitCom * | issue | ) |
void hit_comDoRecv | ( | HitCom * | issue | ) |
void hit_comDoReduce | ( | HitCom * | issue | ) |
void hit_comDoSend | ( | HitCom * | issue | ) |
void hit_comDoSendRecvReplace | ( | HitCom * | issue | ) |
void hit_comDoSparseUpdate | ( | HitCom * | issue | ) |
void hit_comEndRecv | ( | HitCom * | issue | ) |
void hit_comEndSend | ( | HitCom * | issue | ) |
void hit_comFinalize | ( | ) |
void hit_comFree | ( | HitCom | issue | ) |
void hit_comInit | ( | int * | pargc, |
char ** | pargv[] | ||
) |
hit_comInit: initializes the communication environment
pargc | pointer to the counter arguments of the main routine |
pargv | pointer to the arguments of the main routine |
Definition at line 111 of file hit_com.c.
void hit_comOpGenericAnyType | ( | void * | in, |
void * | inout, | ||
HitType | datatype, | ||
int | offset, | ||
size_t | tam, | ||
HitComOpFunction | f | ||
) |
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.
Definition at line 2671 of file hit_com.c.
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.
Definition at line 2687 of file hit_com.c.
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.
Definition at line 2677 of file hit_com.c.
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.
Definition at line 2691 of file hit_com.c.
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.
Definition at line 2665 of file hit_com.c.
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.
Definition at line 2683 of file hit_com.c.
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
lay | layout |
dim | dimension where the broadcast will be applied. It should be lower than the dimensions of the layout |
root | HitRanks coordinates of the process that will receive the final data |
tilePSend | Pointer to the HitTile to send |
selectionSend | HitShape to applied to the send tile |
modeSelectSend | Constant indicating if the send tile is selected in tile or array coordinates |
tilePRecv | Pointer to the HitTile to receive. It must be of the same type that tilePSendç |
selectionRecv | HitShape to applied to the receive tile |
modeSelectRecv | Constant indicating if the receive tile is selected in tile or array coordinates |
baseType | Basic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...) |
operation | HitOp created to reduce the elements of the tile |
Definition at line 660 of file hit_com.c.
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
lay | layout |
root | HitRanks coordinates of the process that will receive the final data |
tilePSend | Pointer to the HitTile to send |
selectionSend | HitShape to applied to the send tile |
modeSelectSend | Constant indicating if the send tile is selected in tile or array coordinates |
tilePRecv | Pointer to the HitTile to receive. It must be of the same type that tilePSend |
selectionRecv | HitShape to applied to the receive tile |
modeSelectRecv | Constant indicating if the receive tile is selected in tile or array coordinates |
baseType | Basic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...) |
operation | HitOp created to reduce the elements of the tile |
Definition at line 585 of file hit_com.c.
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.
lay | layout. |
sendTo | HitRanks coordinates of the process that will send. |
tileP | Pointer to the HitTile to send and receive. |
selection | HitShape to applied to the tile. |
modeSelect | Constant indicating if the tile is selected in tile or array coordinates. |
receiveFrom | HitRanks coordinates of the process that will receive |
baseType | Basic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...). |
tag | Tag of the communication. |
Definition at line 393 of file hit_com.c.
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
lay | layout |
sendTo | HitRanks coordinates of the process that will receive |
tilePSend | Pointer to the HitTile to send |
selectionSend | HitShape to applied to the send tile |
modeSelectSend | Constant indicating if the send tile is selected in tile or array coordinates |
receiveFrom | HitRanks coordinates of the process from which to receive |
tilePRecv | Pointer to the HitTile to receive |
selectionRecv | HitShape to applied to the receive tile |
modeSelectRecv | Constant indicating if the receive tile is selected in tile or array coordinates |
baseType | Basic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...) |
tag | Tag of the communication |
Definition at line 450 of file hit_com.c.
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.
lay | Layout. |
tileP | Pointer to the HitTile. |
baseType | Basic type of the elements of the tile (HIT_INT, HIT_DOUBLE, HIT_FLOAT,...). |
Definition at line 1084 of file hit_com.c.
void hit_comStartRecv | ( | HitCom * | issue | ) |
void hit_comStartSend | ( | HitCom * | issue | ) |
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.
com | A pointer to the communication. |
tileP | The new tile pointer with the origin data. |
Definition at line 1985 of file hit_com.c.
HitComAlltoallv HIT_COM_ALLTOALLV_NULL |
Hit COM alltoallv: NULL VALUE for HitComAlltoallv.
HitComSparse HIT_COM_SPARSE_NULL |
Hit COM sparse: NULL VALUE for HitComSparse.