PEARL
Parallel Event Access and Replay Library
Classes | Typedefs | Enumerations | Functions | Variables
pearl Namespace Reference

Namespace of the PEARL library. More...

Classes

class  AmHandler
 Base class for active message handlers. More...
class  AmListener
 Base class for listener objects. More...
class  AmListenerFactory
 Listener factory for active message listeners. More...
class  AmRequest
 Base class for active message requests. More...
class  AmRequestFactory
 Request factory for active message request. More...
class  AmRuntime
 Active message runtime class. More...
class  Buffer
 Generic memory buffer implementation. More...
class  Callback
 Abstract base class for callback objects. More...
class  CallbackData
 Base class for data objects passed to callback function during replay. More...
class  CallbackManager
 Manages a set of callback objects and provides a simple notification mechanism. More...
class  Callpath
 Representation of a callpath definition. More...
class  Callsite
 Representation of a callsite definition. More...
class  Cartesian
 Stores information related to cartesian grid topologies. More...
class  Communicator
 Representation of a communicator definition. More...
class  CompoundTask
 Maintains a set of tasks and executes them in sequence. More...
class  CountedPtr
 Non-intrusive reference-counted smart pointer. More...
class  Enter_rep
 Event representation for entering a source code region. More...
class  EnterCS_rep
 Event representation for entering a call site. More...
class  Error
 Base class for exceptions related to the PEARL library. More...
class  RuntimeError
 Exception class related to the PEARL library for recoverable errors. More...
class  FatalError
 Exception class related to the PEARL library for unrecoverable errors. More...
class  MemoryError
 Exception class related to the PEARL library that is used to signal out of memory situations. More...
class  Event
 Generic representation for local events with iterator functionality. More...
struct  EventKeyCompare
 Provides a comparison operator that allows Event objects to be as key in std::map or std::set. More...
class  Event_rep
 Base class for all event representations. More...
class  EventSet
 Container class for a set of local events with associated roles. More...
class  GlobalDefs
 Stores the global definitions of a tracing experiment. More...
class  Leave_rep
 Event representation for leaving a source code region. More...
class  LocalData
 Container class for a set of local events with associated roles. More...
class  LocalTrace
 Container class for local event traces. More...
class  Location
 Representation of a location definition. More...
class  LocationGroup
 Interface of location group definition representations. More...
class  Metric
 Stores information related to additional performance metrics. More...
class  MpiAmListener
 Listener using the communicator of an MpiWindow object. More...
class  MpiAmRequest
 Active message request using an MpiMessage buffer. More...
class  MpiCancelled_rep
 Event representation for MPI_CANCELLED events. More...
class  MpiCartesian
 Stores information related to a virtual cartesian MPI topology. More...
class  MpiCollBegin_rep
 Event representation for the begin of MPI collective operations. More...
class  MpiCollEnd_rep
 Event representation for end of MPI collective operations. More...
class  MpiComm
 Stores information related to an MPI communicator. More...
class  MpiGroup
 Stores information related to an MPI group. More...
class  MpiMessage
 Abstraction layer for MPI messages. More...
class  MpiReceive_rep
 Event representation for MPI_RECV events. More...
class  MpiReceiveComplete_rep
 Event representation for MPI_RECV events. More...
class  MpiReceiveRequest_rep
 Event representation for MPI_RECV_REQUEST events. More...
class  MpiRequestTested_rep
 Event representation for MPI_SEND_COMPLETE events. More...
class  MpiRmaCollBegin_rep
 Event representation for the begin of MPI RMA collective operations. More...
class  MpiRmaCollEnd_rep
 Event representation for the end of MPI RMA collective operations. More...
class  MpiRmaGats_rep
 Event representation for MPI_RMAGATS events representing group-based synchronization. More...
class  MpiRmaGetEnd_rep
 Event representation for RMA_GET_END events. More...
class  MpiRmaGetStart_rep
 Event representation for RMA_GET_START events. More...
class  MpiRmaLock_rep
 Class for MPI RMA lock events. More...
class  MpiRmaPutEnd_rep
 Event representation for RMA_PUT_END events. More...
class  MpiRmaPutStart_rep
 Event representation for MPI_RMA_PUT_START events. More...
class  MpiRmaUnlock_rep
 Class for MPI RMA unlock events. More...
class  MpiSend_rep
 Event representation for MPI_SEND events. More...
class  MpiSendComplete_rep
 Event representation for MPI_SEND_COMPLETE events. More...
class  MpiSendRequest_rep
 Event representation for MPI_SEND events. More...
class  MpiWindow
 Stores information related to an MPI-2 remote memory access window. More...
class  OmpAcquireLock_rep
 Event representation for OMP_ACQUIRE_LOCK events. More...
class  OmpFork_rep
 Event representation for OMP_FORK events. More...
class  OmpJoin_rep
 Event representation for OMP_JOIN events. More...
class  OmpReleaseLock_rep
 Event representation for OMP_RELEASE_LOCK events. More...
class  OmpTaskComplete_rep
 Event representation for OMP_TASK_COMPLETE events. More...
class  OmpTaskCreate_rep
 Event representation for OMP_TASK_CREATE events. More...
class  OmpTaskSwitch_rep
 Event representation for OMP_TASK_SWITCH events. More...
class  Otf2Writer
 Provides a writer class to generate OTF2 traces. More...
class  ProcessGroup
 Defines a group of processes by means of global process identifiers. More...
class  Region
 Representation of a region definition. More...
class  RemoteData
 Container class for a set of remote events with associated roles. More...
class  RemoteEvent
 Generic representation for remote events without iterator functionality. More...
class  RemoteEventSet
 Container class for a set of remote events with associated roles. More...
class  RemoteTimeSegment
 Auxiliary class to ease comparision between remote time segments. More...
class  ReplayTask
 Abstract base class for a replay-based trace analysis task. More...
class  ForwardReplayTask
 Base class for forward trace-replay tasks. More...
class  BackwardReplayTask
 Base class for backward trace-replay tasks. More...
class  RmaGetEnd_rep
class  RmaGetStart_rep
 Event representation for RMA_GET_START events. More...
class  RmaPutEnd_rep
 Event representation for RMA_PUT_END events. More...
class  RmaPutStart_rep
 Event representation for RMA_PUT_START events. More...
class  RmaWindow
 Base class for remote memory access windows. More...
class  SmallObject
 Provides a base class for small objects using a custom memory management. More...
class  String
 Representation of a string definition. More...
class  SystemNode
 Representation of a system node definition. More...
class  Task
 Abstract base class for a generic Task. More...
class  TaskWrapper
 Abstract base class for a wrapper task. More...
class  TimeSegment
 Auxiliary class to ease comparision between time segments. More...
class  Topology
 Base class for virtual topologies. More...
class  TraceArchive
 Abstract representation of a trace experiment archive. More...

Typedefs

typedef CountedPtr< CallbackCallbackPtr
 Type name for reference-counted callback objects.
typedef double timestamp_t
 Data type for timestamp values.
typedef uint32_t ident_t
 Data type for identifiers.
typedef uint32_t line_t
 Data type for line number information.
typedef std::vector
< pearl::RemoteEvent
RemoteRmaEpoch
 List of local events.
typedef std::vector< pearl::EventRmaEpoch
 List of local events.

Enumerations

enum  event_t {
  ENTER, ENTER_CS, LEAVE, MPI_COLLECTIVE_BEGIN,
  MPI_COLLECTIVE_END, MPI_SEND, MPI_SEND_REQUEST, MPI_SEND_COMPLETE,
  MPI_RECV, MPI_RECV_REQUEST, MPI_RECV_COMPLETE, MPI_REQUEST_TESTED,
  MPI_CANCELLED, OMP_FORK, OMP_JOIN, OMP_ACQUIRE_LOCK,
  OMP_RELEASE_LOCK, OMP_TASK_CREATE, OMP_TASK_COMPLETE, OMP_TASK_SWITCH,
  RMA_PUT_START, RMA_PUT_END, RMA_GET_START, RMA_GET_END,
  MPI_RMA_PUT_START, MPI_RMA_PUT_END, MPI_RMA_GET_START, MPI_RMA_GET_END,
  MPI_RMA_GATS, MPI_RMA_COLLECTIVE_BEGIN, MPI_RMA_COLLECTIVE_END, MPI_RMA_LOCK,
  MPI_RMA_UNLOCK, GROUP_ALL, GROUP_ENTER, GROUP_SEND,
  GROUP_RECV, GROUP_BEGIN, GROUP_END, NUM_EVENT_TYPES
}
 Enumeration defining available event types. More...

Functions

bool isFinished (AmRequest *request)
template<class classT , typename funcT >
CallbackPtr PEARL_create_callback (classT *instance, funcT function)
std::ostream & operator<< (std::ostream &stream, const Event &event)
std::string event_typestr (event_t type)
template<class EvtRepT >
EvtRepT & event_cast (Event_rep &event)
void PEARL_verify_calltree (GlobalDefs &defs, const LocalTrace &trace)
void PEARL_mpi_unify_calltree (GlobalDefs &defs)
void PEARL_preprocess_trace (const GlobalDefs &defs, const LocalTrace &trace)
bool is_omp_api (const pearl::Region &region)
bool is_omp_parallel (const pearl::Region &region)
bool is_omp_barrier (const pearl::Region &region)
bool is_omp_ebarrier (const pearl::Region &region)
bool is_omp_ibarrier (const pearl::Region &region)
bool is_mpi_api (const pearl::Region &region)
bool is_mpi_init (const pearl::Region &region)
bool is_mpi_finalize (const pearl::Region &region)
bool is_mpi_collective (const pearl::Region &region)
bool is_mpi_barrier (const pearl::Region &region)
bool is_mpi_12n (const pearl::Region &region)
bool is_mpi_n21 (const pearl::Region &region)
bool is_mpi_n2n (const pearl::Region &region)
bool is_mpi_scan (const pearl::Region &region)
bool is_mpi_block_send (const pearl::Region &region)
bool is_mpi_testx (const pearl::Region &region)
bool is_mpi_wait_single (const pearl::Region &region)
bool is_mpi_wait_multi (const pearl::Region &region)
bool is_mpi_rma_start (const pearl::Region &region)
bool is_mpi_rma_complete (const pearl::Region &region)
bool is_mpi_rma_post (const pearl::Region &region)
bool is_mpi_rma_wait (const pearl::Region &region)
bool is_mpi_rma_collective (const pearl::Region &region)
bool is_mpi_rma_fence (const pearl::Region &region)
std::ostream & operator<< (std::ostream &stream, const RemoteEvent &event)
Library setup & teardown
void PEARL_init ()
void PEARL_mpi_init ()
void PEARL_omp_init ()
void PEARL_hybrid_init ()
void PEARL_finalize ()
Replay functionality
void PEARL_forward_replay (const LocalTrace &trace, const CallbackManager &cbmanager, CallbackData *data, const LocalTrace::iterator &begin, const LocalTrace::iterator &end)
void PEARL_forward_replay (const LocalTrace &trace, const CallbackManager &cbmanager, CallbackData *data)
void PEARL_backward_replay (const LocalTrace &trace, const CallbackManager &cbmanager, CallbackData *data, const LocalTrace::reverse_iterator &rbegin, const LocalTrace::reverse_iterator &rend)
void PEARL_backward_replay (const LocalTrace &trace, const CallbackManager &cbmanager, CallbackData *data)

Variables

const uint32_t PEARL_NO_ID = (~static_cast<uint32_t>(0))
 Constant used to identify unused/unknown identifier fields.
const uint64_t PEARL_NO_REQUEST = (~static_cast<uint64_t>(0))
 Constant used to identify undefined/unknown request identifier fields.
const line_t PEARL_NO_NUM = 0
 Constant used to identify unused/unknown number fields.

Detailed Description

The C++ namespace pearl encapsulates all classes, functions, and identifiers that are related to the Parallel Event Analysis and Replay Library PEARL.


Typedef Documentation

typedef uint32_t pearl::ident_t
typedef uint32_t pearl::line_t
typedef std::vector<pearl::Event> pearl::RmaEpoch
typedef double pearl::timestamp_t

Enumeration Type Documentation

Enumerator:
ENTER 
ENTER_CS 
LEAVE 
MPI_COLLECTIVE_BEGIN 
MPI_COLLECTIVE_END 
MPI_SEND 
MPI_SEND_REQUEST 
MPI_SEND_COMPLETE 
MPI_RECV 
MPI_RECV_REQUEST 
MPI_RECV_COMPLETE 
MPI_REQUEST_TESTED 
MPI_CANCELLED 
OMP_FORK 
OMP_JOIN 
OMP_ACQUIRE_LOCK 
OMP_RELEASE_LOCK 
OMP_TASK_CREATE 
OMP_TASK_COMPLETE 
OMP_TASK_SWITCH 
RMA_PUT_START 
RMA_PUT_END 
RMA_GET_START 
RMA_GET_END 
MPI_RMA_PUT_START 
MPI_RMA_PUT_END 
MPI_RMA_GET_START 
MPI_RMA_GET_END 
MPI_RMA_GATS 
MPI_RMA_COLLECTIVE_BEGIN 
MPI_RMA_COLLECTIVE_END 
MPI_RMA_LOCK 
MPI_RMA_UNLOCK 
GROUP_ALL 

Refers to an arbitrary event.

GROUP_ENTER 

Refers to all ENTER-type events (i.e., ENTER, ENTER_CS)

GROUP_SEND 

Refers to all SEND-type events (i.e., MPI_SEND, MPI_SEND_REQUEST)

GROUP_RECV 

Refers to all RECV-type events (i.e., MPI_RECV, MPI_RECV_COMPLETE)

GROUP_BEGIN 

Refers to all BEGIN-type events.

GROUP_END 

Refers to all END-type events.

NUM_EVENT_TYPES 

Function Documentation

template<class EvtRepT >
EvtRepT& pearl::event_cast ( Event_rep &  event) [inline]
std::string pearl::event_typestr ( event_t  type)
bool pearl::is_mpi_12n ( const pearl::Region region) [inline]
bool pearl::is_mpi_api ( const pearl::Region region) [inline]
bool pearl::is_mpi_barrier ( const pearl::Region region) [inline]
bool pearl::is_mpi_block_send ( const pearl::Region region) [inline]
bool pearl::is_mpi_collective ( const pearl::Region region) [inline]
bool pearl::is_mpi_finalize ( const pearl::Region region) [inline]
bool pearl::is_mpi_init ( const pearl::Region region) [inline]
bool pearl::is_mpi_n21 ( const pearl::Region region) [inline]
bool pearl::is_mpi_n2n ( const pearl::Region region) [inline]
bool pearl::is_mpi_rma_collective ( const pearl::Region region) [inline]
bool pearl::is_mpi_rma_complete ( const pearl::Region region) [inline]
bool pearl::is_mpi_rma_fence ( const pearl::Region region) [inline]
bool pearl::is_mpi_rma_post ( const pearl::Region region) [inline]
bool pearl::is_mpi_rma_start ( const pearl::Region region) [inline]
bool pearl::is_mpi_rma_wait ( const pearl::Region region) [inline]
bool pearl::is_mpi_scan ( const pearl::Region region) [inline]
bool pearl::is_mpi_testx ( const pearl::Region region) [inline]
bool pearl::is_mpi_wait_multi ( const pearl::Region region) [inline]
bool pearl::is_mpi_wait_single ( const pearl::Region region) [inline]
bool pearl::is_omp_api ( const pearl::Region region) [inline]
bool pearl::is_omp_barrier ( const pearl::Region region) [inline]
bool pearl::is_omp_ebarrier ( const pearl::Region region) [inline]
bool pearl::is_omp_ibarrier ( const pearl::Region region) [inline]
bool pearl::is_omp_parallel ( const pearl::Region region) [inline]
bool pearl::isFinished ( AmRequest *  request)
std::ostream& pearl::operator<< ( std::ostream &  stream,
const RemoteEvent &  event 
)
std::ostream& pearl::operator<< ( std::ostream &  stream,
const Event &  event 
)
void pearl::PEARL_backward_replay ( const LocalTrace &  trace,
const CallbackManager &  cbmanager,
CallbackData *  data,
const LocalTrace::reverse_iterator &  rbegin,
const LocalTrace::reverse_iterator &  rend 
)
void pearl::PEARL_backward_replay ( const LocalTrace &  trace,
const CallbackManager &  cbmanager,
CallbackData *  data 
) [inline]
template<class classT , typename funcT >
CallbackPtr pearl::PEARL_create_callback ( classT *  instance,
funcT  function 
)
void pearl::PEARL_forward_replay ( const LocalTrace &  trace,
const CallbackManager &  cbmanager,
CallbackData *  data,
const LocalTrace::iterator &  begin,
const LocalTrace::iterator &  end 
)
void pearl::PEARL_forward_replay ( const LocalTrace &  trace,
const CallbackManager &  cbmanager,
CallbackData *  data 
) [inline]
void pearl::PEARL_mpi_unify_calltree ( GlobalDefs &  defs)
void pearl::PEARL_preprocess_trace ( const GlobalDefs &  defs,
const LocalTrace &  trace 
)
void pearl::PEARL_verify_calltree ( GlobalDefs &  defs,
const LocalTrace &  trace 
)

Variable Documentation

const uint32_t pearl::PEARL_NO_ID = (~static_cast<uint32_t>(0))
const uint64_t pearl::PEARL_NO_REQUEST = (~static_cast<uint64_t>(0))
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Scalasca    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