LAMA
lama::MPISyncToken Class Reference

Class for MPI synchronization that waits on pending messages. More...

#include <MPISyncToken.hpp>

Inheritance diagram for lama::MPISyncToken:

Public Member Functions

 MPISyncToken (PartitionId nRequests)
 Constructor for an MPI synchronization token.
virtual ~MPISyncToken ()
 Destructor, will also wait for synchronization and cleanup.
void pushRequest (const MPI_Request &request)
virtual void wait ()
 This method waits for all requests.
virtual bool probe () const
 Method to check wheter communications have already been finished.
virtual void writeAt (std::ostream &stream) const
 Write representation of this object into an output stream.
bool isSynchronized () const
 Query whether token has already been synchronized.
void pushAccess (std::auto_ptr< BaseAccess > access)
 Add a read/write access to the token so that LAMA arrays will be locked until synchronization.
void pushArray (std::auto_ptr< _LAMAArray > array)
 Add a LAMA array that will be free after synchronization.
void pushSyncToken (std::auto_ptr< SyncToken > syncToken)
 Add a Synctoken that will be synchronized after synchronization.

Protected Member Functions

void setSynchronized ()
 This method should be called by base classes after a successful wait.
 LAMA_LOG_DECL_STATIC_LOGGER (logger)
 logger for this class

Private Member Functions

 MPISyncToken ()

Private Attributes

PartitionId mNRequests
PartitionId mUsedRequests
boost::scoped_array< MPI_Request > mRequests
boost::scoped_array< MPI_Status > mStatuses

Detailed Description

Class for MPI synchronization that waits on pending messages.


Constructor & Destructor Documentation

Constructor for an MPI synchronization token.

Parameters:
nRequestsis the number of requests to be allocated

Each pending send and receive will have its own request.

References mNRequests.

Destructor, will also wait for synchronization and cleanup.

References lama::SyncToken::isSynchronized(), and wait().


Member Function Documentation

lama::SyncToken::LAMA_LOG_DECL_STATIC_LOGGER ( logger  ) [protected, inherited]

logger for this class

Reimplemented in lama::TaskSyncToken, and CUDATracerSyncToken.

bool lama::MPISyncToken::probe ( ) const [virtual]

Method to check wheter communications have already been finished.

Implements lama::SyncToken.

References LAMA_MPICALL, mRequests, mStatuses, and mUsedRequests.

void lama::SyncToken::pushAccess ( std::auto_ptr< BaseAccess access) [inherited]
void lama::SyncToken::pushArray ( std::auto_ptr< _LAMAArray array) [inherited]

Add a LAMA array that will be free after synchronization.

References LAMA_ASSERT_ERROR, lama::SyncToken::mArrays, and lama::SyncToken::mSynchronized.

void lama::SyncToken::pushSyncToken ( std::auto_ptr< SyncToken syncToken) [inherited]

Add a Synctoken that will be synchronized after synchronization.

References LAMA_ASSERT_ERROR, lama::SyncToken::mChilds, and lama::SyncToken::mSynchronized.

Referenced by CUDATracerHelper< Tracer >::CUDATracerHelper().

void lama::MPISyncToken::wait ( ) [virtual]
void lama::MPISyncToken::writeAt ( std::ostream &  stream) const [virtual]

Write representation of this object into an output stream.

Reimplemented from lama::SyncToken.

References lama::SyncToken::isSynchronized(), and mUsedRequests.


Field Documentation

boost::scoped_array<MPI_Request> lama::MPISyncToken::mRequests [private]

Referenced by probe(), pushRequest(), and wait().

boost::scoped_array<MPI_Status> lama::MPISyncToken::mStatuses [private]

Referenced by probe(), and wait().


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