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

Namespace of the PEARL library. More...

Namespaces

 detail
 Internal namespace of the PEARL library.
 
 uncopyable
 Helper namespace to prevent unintended argument-dependent name lookup.
 

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  BackwardReplayTask
 Base class for backward trace-replay tasks. 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  CallingContext
 Representation of a calling context definition. More...
 
class  Callpath
 Representation of a callpath definition. More...
 
class  Callsite
 Representation of a callsite definition. More...
 
class  CartDimension
 Representation of a Cartesian grid topology dimension definition. More...
 
class  CartTopology
 Representation of a Cartesian grid topology definition. More...
 
class  CommLocationSet
 Grouping set definition representation for a set of Location definition objects participating in a particular paradigm. More...
 
class  CommSet
 Grouping set definition representation for defining a subgroup of Location definition objects from a communication location set. 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  EnterProgram_rep
 Event representation for PROGRAM_BEGIN events. More...
 
class  Error
 Base class for exceptions related to the PEARL library. More...
 
class  Event
 Generic representation for local events with iterator functionality. More...
 
class  Event_rep
 Base class for all event representations. More...
 
struct  EventKeyCompare
 Provides a comparison operator that allows Event objects to be as key in std::map or std::set. More...
 
class  EventSet
 Container class for a set of local events with associated roles. More...
 
class  FatalError
 Exception class related to the PEARL library for unrecoverable errors. More...
 
class  Flags
 Class template for type-safe enum flags. More...
 
class  ForwardReplayTask
 Base class for forward trace-replay tasks. More...
 
class  GlobalDefs
 Stores the global definitions of a tracing experiment. More...
 
class  GroupingSet
 Abstract base class of grouping set definition representations. More...
 
class  Leave_rep
 Event representation for leaving a source code region. More...
 
class  LeaveProgram_rep
 Event representation for PROGRAM_END events. 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  LocationSet
 Grouping set definition representation for a set of Location definition objects. More...
 
class  MemoryError
 Exception class related to the PEARL library that is used to signal out of memory situations. 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  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
 Communicator definition representation for multi-process communicators. More...
 
class  MpiGroup
 Grouping set definition representation for a multi-process communication set. 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  Otf2Writer
 Provides a writer class to generate OTF2 traces. More...
 
struct  Paradigm_enum
 Helper struct defining the enumerators of the Paradigm scoped enumeration. 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  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  RuntimeError
 Exception class related to the PEARL library for recoverable errors. More...
 
class  ScopedEnum
 Scoped enumeration class template. More...
 
class  ScopedPtr
 Class template providing a very basic "resource acquisition is initialization" facility. More...
 
class  SmallObject
 Provides a base class for small objects using a custom memory management. More...
 
class  SourceLocation
 Representation of a source-code location definition. 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  ThreadAcquireLock_rep
 Event representation for THREAD_ACQUIRE_LOCK events. More...
 
class  ThreadBegin_rep
 Event representation for THREAD_BEGIN events. More...
 
class  ThreadCreate_rep
 Event representation for THREAD_CREATE events. More...
 
class  ThreadEnd_rep
 Event representation for THREAD_END events. More...
 
class  ThreadFork_rep
 Event representation for THREAD_FORK events. More...
 
class  ThreadJoin_rep
 Event representation for THREAD_JOIN events. More...
 
class  ThreadReleaseLock_rep
 Event representation for THREAD_RELEASE_LOCK events. More...
 
class  ThreadTaskComplete_rep
 Event representation for THREAD_TASK_COMPLETE events. More...
 
class  ThreadTaskCreate_rep
 Event representation for THREAD_TASK_CREATE events. More...
 
class  ThreadTaskSwitch_rep
 Event representation for THREAD_TASK_SWITCH events. More...
 
class  ThreadTeamBegin_rep
 Event representation for THREAD_TEAM_BEGIN events. More...
 
class  ThreadTeamEnd_rep
 Event representation for THREAD_TEAM_END events. More...
 
class  ThreadWait_rep
 Event representation for THREAD_WAIT events. More...
 
class  TimeSegment
 Auxiliary class to ease comparision between time segments. More...
 
class  TraceArchive
 Abstract representation of a trace experiment archive. More...
 

Typedefs

typedef CountedPtr< CallbackCallbackPtr
 Type name for reference-counted callback objects. More...
 
typedef std::vector< uint32_t > CartCoordinate
 Data type used to store a single Cartesian grid coordinate. More...
 
typedef std::vector< CartCoordinateCartCoordList
 Data type storing a list of Cartesian grid coordinates. More...
 
typedef ScopedEnum< Paradigm_enumParadigm
 Enumeration type defining all known paradigms. More...
 
typedef double timestamp_t
 Data type for timestamp values. More...
 
typedef uint32_t ident_t
 Data type for identifiers. More...
 
typedef uint32_t line_t
 Data type for line number information. More...
 
typedef std::vector< pearl::RemoteEventRemoteRmaEpoch
 List of local events. More...
 
typedef std::vector< pearl::EventRmaEpoch
 List of local events. More...
 
typedef pearl::uncopyable::Uncopyable Uncopyable
 Alias for the pearl::uncopyable::Uncopyable policy class. More...
 

Enumerations

enum  event_t {
  ENTER,
  ENTER_CS,
  ENTER_PROGRAM,
  LEAVE,
  LEAVE_PROGRAM,
  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,
  THREAD_ACQUIRE_LOCK,
  THREAD_RELEASE_LOCK,
  THREAD_TASK_CREATE,
  THREAD_TASK_COMPLETE,
  THREAD_TASK_SWITCH,
  THREAD_BEGIN,
  THREAD_END,
  THREAD_CREATE,
  THREAD_WAIT,
  THREAD_FORK,
  THREAD_JOIN,
  THREAD_TEAM_BEGIN,
  THREAD_TEAM_END,
  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_LEAVE,
  GROUP_SEND,
  GROUP_RECV,
  GROUP_BEGIN,
  GROUP_END,
  GROUP_NONBLOCK,
  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)
 
uint64_t getTaskBlockId (const Event &event)
 
template<class EvtRepT >
EvtRepT & event_cast (Event_rep &event)
 
template<typename EnumT , typename StorageT >
bool operator== (const Flags< EnumT, StorageT > &lhs, const Flags< EnumT, StorageT > &rhs)
 
template<typename EnumT , typename StorageT >
bool operator!= (const Flags< EnumT, StorageT > &lhs, const Flags< EnumT, StorageT > &rhs)
 
template<typename BaseT >
void swap (ScopedPtr< BaseT > &lhs, ScopedPtr< BaseT > &rhs)
 
std::ostream & operator<< (std::ostream &stream, const RemoteEvent &event)
 

Variables

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

Conversion functions

std::string toString (const Paradigm &item)
 Get string representation of a paradigm object. More...
 
const std::string toString (const Region::Role role)
 Get string representation of a region role. More...
 

Detailed Description

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

Typedef Documentation

◆ CallbackPtr

◆ CartCoordinate

typedef std::vector< uint32_t > pearl::CartCoordinate

◆ CartCoordList

typedef std::vector< CartCoordinate > pearl::CartCoordList

◆ ident_t

typedef uint32_t pearl::ident_t

◆ line_t

typedef uint32_t pearl::line_t

◆ Paradigm

This enumeration type defines symbolic names for all known paradigms. A paradigm encodes the programming API a region definition, group definition, or event refers to (e.g., MPI or OpenMP), or how a region was captured (e.g., through compiler or user instrumentation). See Paradigm_enum::type for details.

◆ RemoteRmaEpoch

◆ RmaEpoch

typedef std::vector<pearl::Event> pearl::RmaEpoch

◆ timestamp_t

typedef double pearl::timestamp_t

Enumeration Type Documentation

◆ event_t

Enumerator
ENTER 
ENTER_CS 
ENTER_PROGRAM 
LEAVE 
LEAVE_PROGRAM 
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 
THREAD_ACQUIRE_LOCK 
THREAD_RELEASE_LOCK 
THREAD_TASK_CREATE 
THREAD_TASK_COMPLETE 
THREAD_TASK_SWITCH 
THREAD_BEGIN 
THREAD_END 
THREAD_CREATE 
THREAD_WAIT 
THREAD_FORK 
THREAD_JOIN 
THREAD_TEAM_BEGIN 
THREAD_TEAM_END 
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, ENTER_PROGRAM)

GROUP_LEAVE 

Refers to all LEAVE-type events (i.e., LEAVE, LEAVE_PROGRAM)

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.

GROUP_NONBLOCK 

Refers to all non-blocking events (e.g., MPI_SEND_REQUEST, MPI_SEND_COMPLETE, etc.)

NUM_EVENT_TYPES 

Function Documentation

◆ event_cast()

template<class EvtRepT >
EvtRepT& pearl::event_cast ( Event_rep event)
inline

◆ event_typestr()

std::string pearl::event_typestr ( event_t  type)

◆ getTaskBlockId()

uint64_t pearl::getTaskBlockId ( const Event event)

◆ is_mpi_12n()

bool pearl::is_mpi_12n ( const pearl::Region region)
inline

◆ is_mpi_api()

bool pearl::is_mpi_api ( const pearl::Region region)
inline

◆ is_mpi_barrier()

bool pearl::is_mpi_barrier ( const pearl::Region region)
inline

◆ is_mpi_block_send()

bool pearl::is_mpi_block_send ( const pearl::Region region)
inline

◆ is_mpi_collective()

bool pearl::is_mpi_collective ( const pearl::Region region)
inline

◆ is_mpi_finalize()

bool pearl::is_mpi_finalize ( const pearl::Region region)
inline

◆ is_mpi_init()

bool pearl::is_mpi_init ( const pearl::Region region)
inline

◆ is_mpi_n21()

bool pearl::is_mpi_n21 ( const pearl::Region region)
inline

◆ is_mpi_n2n()

bool pearl::is_mpi_n2n ( const pearl::Region region)
inline

◆ is_mpi_rma_collective()

bool pearl::is_mpi_rma_collective ( const pearl::Region region)
inline

◆ is_mpi_rma_complete()

bool pearl::is_mpi_rma_complete ( const pearl::Region region)
inline

◆ is_mpi_rma_fence()

bool pearl::is_mpi_rma_fence ( const pearl::Region region)
inline

◆ is_mpi_rma_post()

bool pearl::is_mpi_rma_post ( const pearl::Region region)
inline

◆ is_mpi_rma_start()

bool pearl::is_mpi_rma_start ( const pearl::Region region)
inline

◆ is_mpi_rma_wait()

bool pearl::is_mpi_rma_wait ( const pearl::Region region)
inline

◆ is_mpi_scan()

bool pearl::is_mpi_scan ( const pearl::Region region)
inline

◆ is_mpi_testx()

bool pearl::is_mpi_testx ( const pearl::Region region)
inline

◆ is_mpi_wait_multi()

bool pearl::is_mpi_wait_multi ( const pearl::Region region)
inline

◆ is_mpi_wait_single()

bool pearl::is_mpi_wait_single ( const pearl::Region region)
inline

◆ is_omp_api()

bool pearl::is_omp_api ( const pearl::Region region)
inline

◆ is_omp_barrier()

bool pearl::is_omp_barrier ( const pearl::Region region)
inline

◆ is_omp_ebarrier()

bool pearl::is_omp_ebarrier ( const pearl::Region region)
inline

◆ is_omp_ibarrier()

bool pearl::is_omp_ibarrier ( const pearl::Region region)
inline

◆ is_omp_parallel()

bool pearl::is_omp_parallel ( const pearl::Region region)
inline

◆ is_pthread_api()

bool pearl::is_pthread_api ( const pearl::Region region)
inline

◆ is_pthread_condition()

bool pearl::is_pthread_condition ( const pearl::Region region)
inline

◆ is_pthread_mutex_lock()

bool pearl::is_pthread_mutex_lock ( const pearl::Region region)
inline

◆ is_pthread_mutex_trylock()

bool pearl::is_pthread_mutex_trylock ( const pearl::Region region)
inline

◆ is_pthread_spin_lock()

bool pearl::is_pthread_spin_lock ( const pearl::Region region)
inline

◆ isFinished()

bool pearl::isFinished ( AmRequest request)

◆ operator!=()

template<typename EnumT , typename StorageT >
bool pearl::operator!= ( const Flags< EnumT, StorageT > &  lhs,
const Flags< EnumT, StorageT > &  rhs 
)
related

◆ operator<<() [1/3]

std::ostream& pearl::operator<< ( std::ostream &  stream,
const Event event 
)

◆ operator<<() [2/3]

std::ostream& pearl::operator<< ( std::ostream &  stream,
const Paradigm item 
)

Prints the contents of the given paradigm enumeration object item to an output stream in a human-readable form.

Parameters
streamOutput stream
itemParadigm enumeration object
Returns
Output stream

◆ operator<<() [3/3]

std::ostream& pearl::operator<< ( std::ostream &  stream,
const RemoteEvent event 
)

◆ operator==()

template<typename EnumT , typename StorageT >
bool pearl::operator== ( const Flags< EnumT, StorageT > &  lhs,
const Flags< EnumT, StorageT > &  rhs 
)
related

◆ PEARL_backward_replay() [1/2]

void pearl::PEARL_backward_replay ( const LocalTrace trace,
const CallbackManager cbmanager,
CallbackData data 
)
inline

◆ PEARL_backward_replay() [2/2]

void pearl::PEARL_backward_replay ( const LocalTrace trace,
const CallbackManager cbmanager,
CallbackData data,
const LocalTrace::reverse_iterator rbegin,
const LocalTrace::reverse_iterator rend 
)

◆ PEARL_create_callback()

template<class classT , typename funcT >
CallbackPtr pearl::PEARL_create_callback ( classT *  instance,
funcT  function 
)

◆ PEARL_finalize()

void pearl::PEARL_finalize ( )

◆ PEARL_forward_replay() [1/2]

void pearl::PEARL_forward_replay ( const LocalTrace trace,
const CallbackManager cbmanager,
CallbackData data 
)
inline

◆ PEARL_forward_replay() [2/2]

void pearl::PEARL_forward_replay ( const LocalTrace trace,
const CallbackManager cbmanager,
CallbackData data,
const LocalTrace::iterator begin,
const LocalTrace::iterator end 
)

◆ PEARL_init()

void pearl::PEARL_init ( )

◆ PEARL_mpi_init()

void pearl::PEARL_mpi_init ( )

◆ PEARL_mpi_unify_calltree()

void pearl::PEARL_mpi_unify_calltree ( GlobalDefs defs)

◆ PEARL_preprocess_trace()

void pearl::PEARL_preprocess_trace ( const GlobalDefs defs,
const LocalTrace trace 
)

◆ PEARL_verify_calltree()

void pearl::PEARL_verify_calltree ( GlobalDefs defs,
LocalTrace trace 
)

◆ swap()

template<typename BaseT >
void pearl::swap ( ScopedPtr< BaseT > &  lhs,
ScopedPtr< BaseT > &  rhs 
)
related

◆ toString() [1/2]

std::string pearl::toString ( const Paradigm item)

Returns a human-readable string representation of the given paradigm enumeration object item.

Parameters
itemParadigm enumeration object
Returns
Corresponding string representation

◆ toString() [2/2]

const std::string pearl::toString ( const Region::Role  role)

Returns a human-readable string representation of the given region role.

Parameters
roleRegion role
Returns
Corresponding string representation

Variable Documentation

◆ PEARL_NO_ID

const uint32_t pearl::PEARL_NO_ID = (~static_cast<uint32_t>(0))

◆ PEARL_NO_NUM

const line_t pearl::PEARL_NO_NUM = 0

◆ PEARL_NO_REQUEST

const uint64_t pearl::PEARL_NO_REQUEST = (~static_cast<uint64_t>(0))

Scalasca    Copyright © 1998–2019 Forschungszentrum Jülich GmbH, Jülich Supercomputing Centre
Copyright © 2009–2015 German Research School for Simulation Sciences GmbH, Laboratory for Parallel Programming