LAMA
|
Class for PGAS synchronization that waits on pending messages. More...
#include <PGASSyncToken.hpp>
Public Member Functions | |
PGASSyncToken () | |
Constructor for an PGAS synchronization token. | |
virtual | ~PGASSyncToken () |
Destructor, will also wait for synchronization and cleanup. | |
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 |
Class for PGAS synchronization that waits on pending messages.
Constructor for an PGAS synchronization token.
lama::PGASSyncToken::~PGASSyncToken | ( | ) | [virtual] |
Destructor, will also wait for synchronization and cleanup.
References lama::SyncToken::isSynchronized(), and wait().
bool lama::SyncToken::isSynchronized | ( | ) | const [inherited] |
Query whether token has already been synchronized.
References lama::SyncToken::mSynchronized.
Referenced by probe(), lama::CUDAStreamSyncToken::probe(), lama::NoSyncToken::wait(), wait(), lama::TaskSyncToken::wait(), lama::MPISyncToken::wait(), lama::CUDAStreamSyncToken::wait(), lama::NoSyncToken::writeAt(), writeAt(), lama::TaskSyncToken::writeAt(), lama::MPISyncToken::writeAt(), CUDATracerSyncToken::~CUDATracerSyncToken(), lama::MPISyncToken::~MPISyncToken(), lama::NoSyncToken::~NoSyncToken(), and ~PGASSyncToken().
lama::SyncToken::LAMA_LOG_DECL_STATIC_LOGGER | ( | logger | ) | [protected, inherited] |
logger for this class
Reimplemented in lama::TaskSyncToken, and CUDATracerSyncToken.
bool lama::PGASSyncToken::probe | ( | ) | const [virtual] |
Method to check wheter communications have already been finished.
Implements lama::SyncToken.
References lama::SyncToken::isSynchronized().
void lama::SyncToken::pushAccess | ( | std::auto_ptr< BaseAccess > | access | ) | [inherited] |
Add a read/write access to the token so that LAMA arrays will be locked until synchronization.
References LAMA_ASSERT_ERROR, lama::SyncToken::mAccesses, and lama::SyncToken::mSynchronized.
Referenced by lama::ELLStorage< T >::matrixTimesVectorAsync(), lama::CSRStorage< T >::matrixTimesVectorAsync(), and lama::COOStorage< T >::matrixTimesVectorAsyncToDo().
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::SyncToken::setSynchronized | ( | ) | [protected, inherited] |
This method should be called by base classes after a successful wait.
References LAMA_THROWEXCEPTION, lama::SyncToken::mAccesses, lama::SyncToken::mArrays, lama::SyncToken::mChilds, and lama::SyncToken::mSynchronized.
Referenced by lama::NoSyncToken::wait(), CUDATracerSyncToken::wait(), wait(), lama::TaskSyncToken::wait(), lama::MPISyncToken::wait(), lama::CUDAStreamSyncToken::wait(), and lama::NoSyncToken::~NoSyncToken().
void lama::PGASSyncToken::wait | ( | ) | [virtual] |
This method waits for all requests.
Implements lama::SyncToken.
References lama::PGASInterface::getInstance(), lama::SyncToken::isSynchronized(), lama::SyncToken::setSynchronized(), and lama::PGASInterface::syncronizeAll().
Referenced by ~PGASSyncToken().
void lama::PGASSyncToken::writeAt | ( | std::ostream & | stream | ) | const [virtual] |
Write representation of this object into an output stream.
Reimplemented from lama::SyncToken.
References lama::SyncToken::isSynchronized().