PPL Logo

MeshStreamer< dtype > Class Template Reference

#include <MeshStreamer.h>

Inheritance diagram for MeshStreamer< dtype >:

Inheritance graph
[legend]
Collaboration diagram for MeshStreamer< dtype >:

Collaboration graph
[legend]

Public Member Functions

 MeshStreamer (int totalBufferCapacity, int numRows, int numColumns, int numPlanes, const CProxy_MeshStreamerClient< dtype > &clientProxy, int yieldFlag=0, double progressPeriodInMs=-1.0)
 ~MeshStreamer ()
void insertData (dtype &dataItem, const int destinationPe)
void doneInserting ()
void receiveAggregateData (MeshStreamerMessage< dtype > *msg)
void flushBuckets (MeshStreamerMessage< dtype > **messageBuffers, const int numBuffers)
void flushDirect ()
bool isPeriodicFlushEnabled ()
void associateCallback (CkCallback &cb, bool automaticFinish=true)
void registerPeriodicProgressFunction ()
void finish (CkReductionMsg *msg)
void enablePeriodicFlushing ()
 MeshStreamer (int maxNumDataItemsBuffered, int numDimensions, int *dimensionSizes, bool yieldFlag=0, double progressPeriodInMs=-1.0)
 ~MeshStreamer ()
void receiveAlongRoute (MeshStreamerMessage< dtype > *msg)
virtual void receiveAtDestination (MeshStreamerMessage< dtype > *msg)=0
void flushDirect ()
void finish ()
bool isPeriodicFlushEnabled ()
virtual void insertData (dtype &dataItem, int destinationPe)
void insertData (void *dataItemHandle, int destinationPe)
void associateCallback (int numContributors, CkCallback startCb, CkCallback endCb, CProxy_CompletionDetector detector, int prio)
void flushAllBuffers ()
void registerPeriodicProgressFunction ()
void enablePeriodicFlushing ()
void done (int numContributorsFinished=1)
void init (CkCallback startCb, CkCallback endCb, int prio)
void startStagedCompletion ()
void markMessageReceived (int dimension, int finalCount)
void checkForCompletedStages ()

Protected Member Functions

virtual int copyDataItemIntoMessage (MeshStreamerMessage< dtype > *destinationBuffer, void *dataItemHandle, bool copyIndirectly=false)
MeshLocation determineLocation (int destinationPe, int dimensionReceivedAlong)

Protected Attributes

CompletionDetectordetectorLocalObj_

Private Member Functions

void determineLocation (const int destinationPe, MeshLocation &destinationCoordinates)
void storeMessage (MeshStreamerMessage< dtype > **const messageBuffers, const int bucketIndex, const int destinationPe, const MeshLocation &destinationCoordinates, const dtype &dataItem)
void flushLargestBucket (MeshStreamerMessage< dtype > **const messageBuffers, const int numBuffers, const int myIndex, const int dimensionFactor)
void storeMessage (int destinationPe, const MeshLocation &destinationCoordinates, void *dataItem, bool copyIndirectly=false)
virtual void localDeliver (dtype &dataItem)=0
virtual int numElementsInClient ()=0
virtual int numLocalElementsInClient ()=0
virtual void initLocalClients ()=0
void sendLargestBuffer ()
void flushToIntermediateDestinations ()
void flushDimension (int dimension, bool sendMsgCounts=false)

Private Attributes

int bucketSize_
int totalBufferCapacity_
int numDataItemsBuffered_
int numNodes_
int numRows_
int numColumns_
int numPlanes_
int planeSize_
CProxy_MeshStreamerClient< dtype > clientProxy_
MeshStreamerClient< dtype > * clientObj_
int myNodeIndex_
int myPlaneIndex_
int myColumnIndex_
int myRowIndex_
CkCallback userCallback_
int yieldFlag_
double progressPeriodInMs_
bool isPeriodicFlushEnabled_
double timeOfLastSend_
MeshStreamerMessage< dtype > ** personalizedBuffers_
MeshStreamerMessage< dtype > ** columnBuffers_
MeshStreamerMessage< dtype > ** planeBuffers_
MeshLocationcachedLocations
boolisCached
int numNodesInLastPlane_
int numFullRowsInLastPlane_
int numColumnsInLastRow_
int bufferSize_
int maxNumDataItemsBuffered_
int numMembers_
int numDimensions_
intindividualDimensionSizes_
intcombinedDimensionSizes_
intstartingIndexAtDimension_
int myIndex_
intmyLocationIndex_
bool yieldFlag_
bool hasSentRecently_
bool hasSentPreviously_
bool immediateMode_
MeshStreamerMessage< dtype > *** dataBuffers_
CProxy_CompletionDetector detector_
int prio_
int yieldCount_
MeshLocationcachedLocations_
boolisCached_
int ** cntMsgSent_
intcntMsgReceived_
intcntMsgExpected_
intcntFinished_
int dimensionToFlush_
int numLocalDone_

Detailed Description

template<class dtype>
class MeshStreamer< dtype >

Definition at line 80 of file MeshStreamer.h.


Constructor & Destructor Documentation

template<class dtype>
MeshStreamer< dtype >::MeshStreamer ( int  totalBufferCapacity,
int  numRows,
int  numColumns,
int  numPlanes,
const CProxy_MeshStreamerClient< dtype > &  clientProxy,
int  yieldFlag = 0,
double  progressPeriodInMs = -1.0 
) [inline]

template<class dtype>
MeshStreamer< dtype >::~MeshStreamer (  )  [inline]

template<class dtype>
MeshStreamer< dtype >::MeshStreamer ( int  maxNumDataItemsBuffered,
int  numDimensions,
int dimensionSizes,
bool  yieldFlag = 0,
double  progressPeriodInMs = -1.0 
) [inline]

template<class dtype>
MeshStreamer< dtype >::~MeshStreamer (  ) 


Member Function Documentation

template<class dtype>
void MeshStreamer< dtype >::determineLocation ( const int  destinationPe,
MeshLocation destinationCoordinates 
) [inline, private]

template<class dtype>
void MeshStreamer< dtype >::storeMessage ( MeshStreamerMessage< dtype > **const   messageBuffers,
const int  bucketIndex,
const int  destinationPe,
const MeshLocation destinationCoordinates,
const dtype &  dataItem 
) [inline, private]

template<class dtype>
void MeshStreamer< dtype >::flushLargestBucket ( MeshStreamerMessage< dtype > **const   messageBuffers,
const int  numBuffers,
const int  myIndex,
const int  dimensionFactor 
) [inline, private]

template<class dtype>
void MeshStreamer< dtype >::insertData ( dtype &  dataItem,
const int  destinationPe 
) [inline]

template<class dtype>
void MeshStreamer< dtype >::doneInserting ( void   )  [inline]

Definition at line 442 of file MeshStreamer.h.

template<class dtype>
void MeshStreamer< dtype >::receiveAggregateData ( MeshStreamerMessage< dtype > *  msg  )  [inline]

template<class dtype>
void MeshStreamer< dtype >::flushBuckets ( MeshStreamerMessage< dtype > **  messageBuffers,
const int  numBuffers 
) [inline]

template<class dtype>
void MeshStreamer< dtype >::flushDirect (  )  [inline]

template<class dtype>
bool MeshStreamer< dtype >::isPeriodicFlushEnabled (  )  [inline]

Definition at line 151 of file MeshStreamer.h.

Referenced by periodicProgressFunction().

template<class dtype>
void MeshStreamer< dtype >::associateCallback ( CkCallback cb,
bool  automaticFinish = true 
) [inline]

Definition at line 155 of file MeshStreamer.h.

template<class dtype>
void MeshStreamer< dtype >::registerPeriodicProgressFunction (  )  [inline]

template<class dtype>
void MeshStreamer< dtype >::finish ( CkReductionMsg *  msg  )  [inline]

template<class dtype>
void MeshStreamer< dtype >::enablePeriodicFlushing (  )  [inline]

Definition at line 168 of file MeshStreamer.h.

Referenced by MeshStreamer< dtype >::associateCallback().

template<class dtype>
void MeshStreamer< dtype >::storeMessage ( int  destinationPe,
const MeshLocation destinationCoordinates,
void *  dataItem,
bool  copyIndirectly = false 
) [inline, private]

template<class dtype>
virtual void MeshStreamer< dtype >::localDeliver ( dtype &  dataItem  )  [private, pure virtual]

template<class dtype>
virtual int MeshStreamer< dtype >::numElementsInClient (  )  [private, pure virtual]

template<class dtype>
virtual int MeshStreamer< dtype >::numLocalElementsInClient (  )  [private, pure virtual]

template<class dtype>
virtual void MeshStreamer< dtype >::initLocalClients (  )  [private, pure virtual]

template<class dtype>
void MeshStreamer< dtype >::sendLargestBuffer (  )  [inline, private]

template<class dtype>
void MeshStreamer< dtype >::flushToIntermediateDestinations (  )  [inline, private]

template<class dtype>
void MeshStreamer< dtype >::flushDimension ( int  dimension,
bool  sendMsgCounts = false 
) [inline, private]

template<class dtype>
int MeshStreamer< dtype >::copyDataItemIntoMessage ( MeshStreamerMessage< dtype > *  destinationBuffer,
void *  dataItemHandle,
bool  copyIndirectly = false 
) [inline, protected, virtual]

template<class dtype>
MeshLocation MeshStreamer< dtype >::determineLocation ( int  destinationPe,
int  dimensionReceivedAlong 
) [inline, protected]

template<class dtype>
void MeshStreamer< dtype >::receiveAlongRoute ( MeshStreamerMessage< dtype > *  msg  )  [inline]

template<class dtype>
virtual void MeshStreamer< dtype >::receiveAtDestination ( MeshStreamerMessage< dtype > *  msg  )  [pure virtual]

template<class dtype>
void MeshStreamer< dtype >::flushDirect (  ) 

template<class dtype>
void MeshStreamer< dtype >::finish (  )  [inline]

template<class dtype>
bool MeshStreamer< dtype >::isPeriodicFlushEnabled (  )  [inline]

Definition at line 186 of file NDMeshStreamer.h.

template<class dtype>
virtual void MeshStreamer< dtype >::insertData ( dtype &  dataItem,
int  destinationPe 
) [virtual]

template<class dtype>
void MeshStreamer< dtype >::insertData ( void *  dataItemHandle,
int  destinationPe 
) [inline]

template<class dtype>
void MeshStreamer< dtype >::associateCallback ( int  numContributors,
CkCallback  startCb,
CkCallback  endCb,
CProxy_CompletionDetector  detector,
int  prio 
) [inline]

template<class dtype>
void MeshStreamer< dtype >::flushAllBuffers (  )  [inline]

template<class dtype>
void MeshStreamer< dtype >::registerPeriodicProgressFunction (  ) 

template<class dtype>
void MeshStreamer< dtype >::enablePeriodicFlushing (  )  [inline]

Definition at line 200 of file NDMeshStreamer.h.

template<class dtype>
void MeshStreamer< dtype >::done ( int  numContributorsFinished = 1  )  [inline]

Definition at line 205 of file NDMeshStreamer.h.

template<class dtype>
void MeshStreamer< dtype >::init ( CkCallback  startCb,
CkCallback  endCb,
int  prio 
) [inline]

template<class dtype>
void MeshStreamer< dtype >::startStagedCompletion (  )  [inline]

template<class dtype>
void MeshStreamer< dtype >::markMessageReceived ( int  dimension,
int  finalCount 
) [inline]

template<class dtype>
void MeshStreamer< dtype >::checkForCompletedStages (  )  [inline]


Field Documentation

template<class dtype>
int MeshStreamer< dtype >::bucketSize_ [private]

template<class dtype>
int MeshStreamer< dtype >::totalBufferCapacity_ [private]

template<class dtype>
int MeshStreamer< dtype >::numDataItemsBuffered_ [private]

template<class dtype>
int MeshStreamer< dtype >::numNodes_ [private]

template<class dtype>
int MeshStreamer< dtype >::numRows_ [private]

template<class dtype>
int MeshStreamer< dtype >::numColumns_ [private]

template<class dtype>
int MeshStreamer< dtype >::numPlanes_ [private]

template<class dtype>
int MeshStreamer< dtype >::planeSize_ [private]

template<class dtype>
CProxy_MeshStreamerClient<dtype> MeshStreamer< dtype >::clientProxy_ [private]

template<class dtype>
MeshStreamerClient<dtype>* MeshStreamer< dtype >::clientObj_ [private]

template<class dtype>
int MeshStreamer< dtype >::myNodeIndex_ [private]

template<class dtype>
int MeshStreamer< dtype >::myPlaneIndex_ [private]

template<class dtype>
int MeshStreamer< dtype >::myColumnIndex_ [private]

template<class dtype>
int MeshStreamer< dtype >::myRowIndex_ [private]

template<class dtype>
CkCallback MeshStreamer< dtype >::userCallback_ [private]

template<class dtype>
int MeshStreamer< dtype >::yieldFlag_ [private]

Definition at line 102 of file MeshStreamer.h.

Referenced by MeshStreamer< dtype >::insertData().

template<class dtype>
double MeshStreamer< dtype >::progressPeriodInMs_ [private]

template<class dtype>
bool MeshStreamer< dtype >::isPeriodicFlushEnabled_ [private]

template<class dtype>
double MeshStreamer< dtype >::timeOfLastSend_ [private]

template<class dtype>
MeshStreamerMessage<dtype>** MeshStreamer< dtype >::personalizedBuffers_ [private]

template<class dtype>
MeshStreamerMessage<dtype>** MeshStreamer< dtype >::columnBuffers_ [private]

template<class dtype>
MeshStreamerMessage<dtype>** MeshStreamer< dtype >::planeBuffers_ [private]

template<class dtype>
MeshLocation* MeshStreamer< dtype >::cachedLocations [private]

template<class dtype>
bool* MeshStreamer< dtype >::isCached [private]

template<class dtype>
int MeshStreamer< dtype >::numNodesInLastPlane_ [private]

Definition at line 118 of file MeshStreamer.h.

Referenced by MeshStreamer< dtype >::MeshStreamer().

template<class dtype>
int MeshStreamer< dtype >::numFullRowsInLastPlane_ [private]

template<class dtype>
int MeshStreamer< dtype >::numColumnsInLastRow_ [private]

template<class dtype>
int MeshStreamer< dtype >::bufferSize_ [private]

template<class dtype>
int MeshStreamer< dtype >::maxNumDataItemsBuffered_ [private]

template<class dtype>
int MeshStreamer< dtype >::numMembers_ [private]

Definition at line 109 of file NDMeshStreamer.h.

Referenced by MeshStreamer< dtype >::MeshStreamer().

template<class dtype>
int MeshStreamer< dtype >::numDimensions_ [private]

template<class dtype>
int* MeshStreamer< dtype >::individualDimensionSizes_ [private]

template<class dtype>
int* MeshStreamer< dtype >::combinedDimensionSizes_ [private]

template<class dtype>
int* MeshStreamer< dtype >::startingIndexAtDimension_ [private]

template<class dtype>
int MeshStreamer< dtype >::myIndex_ [private]

template<class dtype>
int* MeshStreamer< dtype >::myLocationIndex_ [private]

template<class dtype>
bool MeshStreamer< dtype >::yieldFlag_ [private]

Definition at line 120 of file NDMeshStreamer.h.

template<class dtype>
bool MeshStreamer< dtype >::hasSentRecently_ [private]

template<class dtype>
bool MeshStreamer< dtype >::hasSentPreviously_ [private]

Definition at line 126 of file NDMeshStreamer.h.

Referenced by MeshStreamer< dtype >::associateCallback().

template<class dtype>
bool MeshStreamer< dtype >::immediateMode_ [private]

template<class dtype>
MeshStreamerMessage<dtype>*** MeshStreamer< dtype >::dataBuffers_ [private]

template<class dtype>
CProxy_CompletionDetector MeshStreamer< dtype >::detector_ [private]

Definition at line 131 of file NDMeshStreamer.h.

Referenced by MeshStreamer< dtype >::associateCallback().

template<class dtype>
int MeshStreamer< dtype >::prio_ [private]

template<class dtype>
int MeshStreamer< dtype >::yieldCount_ [private]

template<class dtype>
MeshLocation* MeshStreamer< dtype >::cachedLocations_ [private]

template<class dtype>
bool* MeshStreamer< dtype >::isCached_ [private]

template<class dtype>
int** MeshStreamer< dtype >::cntMsgSent_ [private]

template<class dtype>
int* MeshStreamer< dtype >::cntMsgReceived_ [private]

template<class dtype>
int* MeshStreamer< dtype >::cntMsgExpected_ [private]

template<class dtype>
int* MeshStreamer< dtype >::cntFinished_ [private]

template<class dtype>
int MeshStreamer< dtype >::dimensionToFlush_ [private]

template<class dtype>
int MeshStreamer< dtype >::numLocalDone_ [private]

template<class dtype>
CompletionDetector* MeshStreamer< dtype >::detectorLocalObj_ [protected]


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

Generated on Fri May 25 08:04:21 2012 for Charm++ by  doxygen 1.5.5