![]() |
PEARL
Parallel Event Access and Replay Library
|
Abstract base class for a replay-based trace analysis task. More...
#include <pearl/ReplayTask.h>
Public Member Functions | |
virtual bool | execute () |
Protected Member Functions | |
template<class derivedT > | |
void | register_callback (event_t event, void(derivedT::*fptr)(const CallbackManager &, int, const Event &, CallbackData *)) |
template<class derivedT > | |
void | register_callback (int user_event, void(derivedT::*fptr)(const CallbackManager &, int, const Event &, CallbackData *)) |
virtual bool | prepare () |
virtual bool | finish () |
virtual bool | replay ()=0 |
Protected Attributes | |
const GlobalDefs & | m_defs |
Global definitions. | |
LocalTrace & | m_trace |
Local trace data. | |
CallbackData * | m_cbdata |
Callback data object. | |
CallbackManager * | m_cbmanager |
Callback manager object. | |
Constructors & destructor | |
virtual | ~ReplayTask () |
ReplayTask (const GlobalDefs &defs, LocalTrace &trace, CallbackData *data=0, CallbackManager *cbmanager=0) |
ReplayTask provides an interface for a trace replay task. Its execute() method will run a trace replay on a given trace using the PEARL callback system.
Users can inherit from one of the derived classes ForwardReplayTask or BackwardReplayTask, which will perform a default PEARL forward or backward replay, respectively. To specify a different replay engine, users can also inherit directly from ReplayTask and overwrite the replay() method.
virtual pearl::ReplayTask::~ReplayTask | ( | ) | [virtual] |
pearl::ReplayTask::ReplayTask | ( | const GlobalDefs & | defs, |
LocalTrace & | trace, | ||
CallbackData * | data = 0 , |
||
CallbackManager * | cbmanager = 0 |
||
) | [protected] |
virtual bool pearl::ReplayTask::execute | ( | ) | [virtual] |
Implements pearl::Task.
virtual bool pearl::ReplayTask::finish | ( | ) | [protected, virtual] |
virtual bool pearl::ReplayTask::prepare | ( | ) | [protected, virtual] |
void pearl::ReplayTask::register_callback | ( | event_t | event, |
void(derivedT::*)(const CallbackManager &, int, const Event &, CallbackData *) | fptr | ||
) | [inline, protected] |
Convenience function to register a callback member-function for PEARL event records. You can use this function in a derived class to register one of the classes' member functions as callback function for PEARL trace replay.
Example:
class MyReplay : public ReplayTask { public: MyReplay(const GlobalDefs& defs, LocalTrace& trace) : ReplayTask(defs, trace) { register_callback(MPI_SEND, &MyReplay::cb_send); } protected: void cb_send(const CallbackManager& cbmanager, int user_event, const Event& event, CallbackData* cdata) { // ... } };
event | PEARL event to register callback for |
fptr | Pointer to callback member function |
void pearl::ReplayTask::register_callback | ( | int | user_event, |
void(derivedT::*)(const CallbackManager &, int, const Event &, CallbackData *) | fptr | ||
) | [inline, protected] |
Convenience function to register a callback member-function for user-defined events. You can use this function in a derived class to register one of the classes' member functions as callback function for PEARL trace replay.
Example:
class MyReplay : public ReplayTask { public: MyReplay(const GlobalDefs& defs, LocalTrace& trace) : ReplayTask(defs, trace) { register_callback(42, &MyReplay::cb_dowork); } protected: void cb_dowork(const CallbackManager& cbmanager, int user_event, const Event& event, CallbackData* cdata) { // ... } };
user_event | User-defined event to register callback for |
fptr | Pointer to callback member function |
virtual bool pearl::ReplayTask::replay | ( | ) | [protected, pure virtual] |
Pure virtual member function defining the interface for executing a replay. It needs to be overwritten in derived subclasses to define the exact replay behavior.
Implemented in pearl::BackwardReplayTask, and pearl::ForwardReplayTask.
CallbackData* pearl::ReplayTask::m_cbdata [protected] |
CallbackManager* pearl::ReplayTask::m_cbmanager [protected] |
const GlobalDefs& pearl::ReplayTask::m_defs [protected] |
LocalTrace& pearl::ReplayTask::m_trace [protected] |
![]() |
Copyright © 1998–2014 Forschungszentrum Jülich GmbH,
Jülich Supercomputing Centre
Copyright © 2009–2014 German Research School for Simulation Sciences GmbH, Laboratory for Parallel Programming |