PPL Logo

DimexRouter Class Reference

#include <de.h>

Inheritance diagram for DimexRouter:

Inheritance graph
[legend]
Collaboration diagram for DimexRouter:

Collaboration graph
[legend]

Public Member Functions

 DimexRouter (int, int, int ndirect=0)
 ~DimexRouter ()
void NumDeposits (comID, int)
void EachToAllMulticast (comID, int, void *, int)
 Insert messages for the all to all operation, All processors will be multicast the same message here.
void EachToManyMulticast (comID, int, void *, int, int *, int)
 Insert messages for the all to all operation, The destination processors to which a message is multicast to be can be specified.
void EachToManyMulticastQ (comID id, CkQ< MessageHolder * > &msgq)
 Same as EachToManyMulticast, only it receives all the messages into a list.
void ProcMsg (int, msgstruct **)
void RecvManyMsg (comID, char *)
void ProcManyMsg (comID, char *)
void DummyEP (comID id, int)
void SetMap (int *)
 Set the map between processors and virtual processor id's, Useful when only a subset of processors are involved in the communication operation.
void SetID (comID id)

Private Member Functions

void InitVars ()
void CreateStageTable (int, int *)
void LocalProcMsg (comID id)
void start_hcube (comID id)

Private Attributes

PeTablePeHcube
PeTablePeHcube1
intbuffer
intmsgnum
int InitCounter
intpenum
intgpes
int ** next
int Dim
int stage
int MyPe
int NumPes
int numDirectSteps
int two_pow_ndirect
int procMsgCount

Detailed Description

Definition at line 8 of file de.h.


Constructor & Destructor Documentation

DimexRouter::DimexRouter ( int  n,
int  me,
int  ndirect = 0 
)

Definition at line 92 of file de.C.

References CreateStageTable(), Dim, gpes, InitVars(), maxdim(), MyPe, next, numDirectSteps, NumPes, PeHcube, PeHcube1, penum, and two_pow_ndirect.

Referenced by newhcubeobject().

DimexRouter::~DimexRouter (  ) 

Definition at line 143 of file de.C.

References Dim, next, PeHcube, PeHcube1, and penum.


Member Function Documentation

void DimexRouter::InitVars (  )  [private]

Definition at line 161 of file de.C.

References Dim, InitCounter, MyPe, NumPes, procMsgCount, setIC(), and stage.

Referenced by DimexRouter(), and LocalProcMsg().

void DimexRouter::CreateStageTable ( int  numpes,
int destpes 
) [private]

Definition at line 412 of file de.C.

References adjust(), Dim, MyPe, next, and penum.

Referenced by DimexRouter().

void DimexRouter::LocalProcMsg ( comID  id  )  [private]

void DimexRouter::start_hcube ( comID  id  )  [private]

void DimexRouter::NumDeposits ( comID  ,
int  num 
)

Definition at line 177 of file de.C.

void DimexRouter::EachToAllMulticast ( comID  id,
int  size,
void *  msg,
int  more 
) [virtual]

Insert messages for the all to all operation, All processors will be multicast the same message here.

Reimplemented from Router.

Definition at line 168 of file de.C.

References CmiAlloc(), CmiFree(), EachToManyMulticast(), and NumPes.

void DimexRouter::EachToManyMulticast ( comID  id,
int  size,
void *  msg,
int  numPes,
int pelist,
int  more 
) [virtual]

Insert messages for the all to all operation, The destination processors to which a message is multicast to be can be specified.

Parameters:
id communication operation identifier
size size of the message
msg message to be sent
numPes number of processors the message has to be sent to
pelist list of relative proc ids the message has to be multicast to

Reimplemented from Router.

Definition at line 182 of file de.C.

References PeTable::InsertMsgs(), PeHcube, SetID(), and start_hcube().

Referenced by EachToAllMulticast().

void DimexRouter::EachToManyMulticastQ ( comID  id,
CkQ< MessageHolder * > &  msgq 
) [virtual]

Same as EachToManyMulticast, only it receives all the messages into a list.

Reimplemented from Router.

Definition at line 196 of file de.C.

References CkQ< T >::deq(), MessageHolder::getMessage(), PeTable::InsertMsgs(), CkQ< T >::length(), length, MessageHolder::npes, PeHcube, MessageHolder::pelist, SetID(), MessageHolder::size, and start_hcube().

void DimexRouter::ProcMsg ( int  ,
msgstruct **   
) [inline]

Definition at line 32 of file de.h.

void DimexRouter::RecvManyMsg ( comID  id,
char *  msg 
) [virtual]

void DimexRouter::ProcManyMsg ( comID  id,
char *  m 
) [virtual]

void DimexRouter::DummyEP ( comID  id,
int  msgstage 
) [virtual]

Reimplemented from Router.

Definition at line 400 of file de.C.

References LocalProcMsg(), and RecvManyMsg().

void DimexRouter::SetMap ( int  )  [virtual]

Set the map between processors and virtual processor id's, Useful when only a subset of processors are involved in the communication operation.

Reimplemented from Router.

Definition at line 156 of file de.C.

References gpes.

void DimexRouter::SetID ( comID  id  ) 

Definition at line 446 of file de.C.

References numDirectSteps, and two_pow_ndirect.

Referenced by EachToManyMulticast(), and EachToManyMulticastQ().


Field Documentation

Definition at line 11 of file de.h.

Referenced by DimexRouter(), LocalProcMsg(), ProcManyMsg(), and ~DimexRouter().

Definition at line 12 of file de.h.

Definition at line 13 of file de.h.

Definition at line 13 of file de.h.

Referenced by InitVars(), ProcManyMsg(), RecvManyMsg(), and start_hcube().

int* DimexRouter::penum [private]

Definition at line 14 of file de.h.

Referenced by CreateStageTable(), DimexRouter(), RecvManyMsg(), and ~DimexRouter().

int * DimexRouter::gpes [private]

Definition at line 14 of file de.h.

Referenced by DimexRouter(), and SetMap().

int** DimexRouter::next [private]

Definition at line 15 of file de.h.

Referenced by CreateStageTable(), DimexRouter(), RecvManyMsg(), and ~DimexRouter().

int DimexRouter::Dim [private]

Definition at line 16 of file de.h.

Referenced by InitVars(), ProcManyMsg(), RecvManyMsg(), and start_hcube().

Definition at line 16 of file de.h.

Referenced by DimexRouter(), RecvManyMsg(), and SetID().

Definition at line 16 of file de.h.

Referenced by DimexRouter(), ProcManyMsg(), RecvManyMsg(), and SetID().

Definition at line 17 of file de.h.

Referenced by InitVars(), and ProcManyMsg().


The documentation for this class was generated from the following files:

Generated on Fri May 25 08:02:59 2012 for Charm++ by  doxygen 1.5.5