PEARL
Parallel Event Access and Replay Library
Files | Classes
PEARL.base

Base part of the PEARL library. More...

Files

file  AmHandler.h
 Declaration of the class AmHandler.
 
file  AmListener.h
 Declaration of the class AmListener.
 
file  AmListenerFactory.h
 Declaration of the class AmListenerFactory.
 
file  AmRequest.h
 Declaration of the class AmRequest.
 
file  AmRequestFactory.h
 Declaration of the class AmRequestFactory.
 
file  AmRuntime.h
 Declaration of the class AmRuntime.
 
file  Buffer.h
 Declaration of the class Buffer.
 
file  CallingContext.h
 Declaration of the class CallingContext.
 
file  Callpath.h
 Declaration of the class Callpath.
 
file  Callsite.h
 Declaration of the class Callsite.
 
file  CartDimension.h
 Declaration of the class CartDimension.
 
file  CartTopology.h
 Declaration of the class CartTopology.
 
file  CommLocationSet.h
 Declaration of the class CommLocationSet.
 
file  CommSet.h
 Declaration of the class CommSet.
 
file  Communicator.h
 Declaration of the class Communicator.
 
file  CountedPtr.h
 Declaration of the class CountedPtr.
 
file  Enter_rep.h
 Declaration of the class Enter_rep.
 
file  EnterCS_rep.h
 Declaration of the class EnterCS_rep.
 
file  EnterProgram_rep.h
 Declaration of the class EnterProgram_rep.
 
file  Error.h
 Declaration of the exception classes Error, RuntimeError, and FatalError.
 
file  Event.h
 Declaration of the class Event.
 
file  Event_rep.h
 Declaration of the class Event_rep.
 
file  GlobalDefs.h
 Declaration of the class GlobalDefs.
 
file  GroupingSet.h
 Declaration of the class GroupingSet.
 
file  Leave_rep.h
 Declaration of the class Leave_rep.
 
file  LeaveProgram_rep.h
 Declaration of the class LeaveProgram_rep.
 
file  LocalTrace.h
 Declaration of the class LocalTrace.
 
file  Location.h
 Declaration of the class Location.
 
file  LocationGroup.h
 Declaration of the class LocationGroup.
 
file  LocationSet.h
 Declaration of the class LocationSet.
 
file  Metric.h
 Declaration of the class Metric.
 
file  MpiAmListener.h
 Declaration of the class MpiAmListener.
 
file  AmRequest.h
 Declaration of the class AmRequest.
 
file  Paradigm.h
 Declaration of the scoped enumeration type Paradigm.
 
file  pearl.h
 Declarations of global library functions.
 
file  pearl_padding.h
 Definition of a compiler-/platform-specific preprocessor macro to avoid padding in structures.
 
file  pearl_types.h
 Definition of data types and constants.
 
file  pearlfwd_detail.h
 Forward declarations of internal helper classes.
 
file  Region.h
 Declaration of the class Region.
 
file  RemoteEvent.h
 Declaration of the class RemoteEvent.
 
file  RemoteTimeSegment.h
 Declaration of the class RemoteTimeSegment.
 
file  RmaGetEnd_rep.h
 Declaration of the class RmaGetEnd_rep.
 
file  RmaGetStart_rep.h
 Declaration of the class RmaGetStart_rep.
 
file  RmaPutEnd_rep.h
 Declaration of the class RmaPutEnd_rep.
 
file  RmaPutStart_rep.h
 Declaration of the class RmaPutStart_rep.
 
file  RmaWindow.h
 Declaration of the class RmaWindow.
 
file  ScopedEnum.h
 Declaration of the ScopedEnum class template.
 
file  SmallObject.h
 Declaration of the class pearl::SmallObject.
 
file  SourceLocation.h
 Declaration of the class SourceLocation.
 
file  String.h
 Declaration of the class String.
 
file  SystemNode.h
 Declaration of the class SystemNode.
 
file  ThreadAcquireLock_rep.h
 Declaration of the class ThreadAcquireLock_rep.
 
file  ThreadBegin_rep.h
 Declaration of the class ThreadBegin_rep.
 
file  ThreadCreate_rep.h
 Declaration of the class ThreadCreate_rep.
 
file  ThreadEnd_rep.h
 Declaration of the class ThreadEnd_rep.
 
file  ThreadFork_rep.h
 Declaration of the class ThreadFork_rep.
 
file  ThreadJoin_rep.h
 Declaration of the class ThreadJoin_rep.
 
file  ThreadReleaseLock_rep.h
 Declaration of the class ThreadReleaseLock_rep.
 
file  ThreadTaskComplete_rep.h
 Declaration of the class ThreadTaskComplete_rep.
 
file  ThreadTaskCreate_rep.h
 Declaration of the class ThreadTaskCreate_rep.
 
file  ThreadTaskSwitch_rep.h
 Declaration of the class ThreadTaskSwitch_rep.
 
file  ThreadTeamBegin_rep.h
 Declaration of the class ThreadTeamBegin_rep.
 
file  ThreadTeamEnd_rep.h
 Declaration of the class ThreadTeamEnd_rep.
 
file  ThreadWait_rep.h
 Declaration of the class ThreadWait_rep.
 
file  TimeSegment.h
 Declaration of the class TimeSegment.
 
file  TraceArchive.h
 Declaration of the class TraceArchive.
 

Classes

class  pearl::TraceArchive
 Abstract representation of a trace experiment archive. More...
 
class  pearl::AmHandler
 Base class for active message handlers. More...
 
class  pearl::AmListener
 Base class for listener objects. More...
 
class  pearl::AmListenerFactory
 Listener factory for active message listeners. More...
 
class  pearl::AmRequest
 Base class for active message requests. More...
 
class  pearl::AmRequestFactory
 Request factory for active message request. More...
 
class  pearl::Buffer
 Generic memory buffer implementation. More...
 
class  pearl::CallingContext
 Representation of a calling context definition. More...
 
class  pearl::Callpath
 Representation of a callpath definition. More...
 
class  pearl::Callsite
 Representation of a callsite definition. More...
 
class  pearl::CartDimension
 Representation of a Cartesian grid topology dimension definition. More...
 
class  pearl::CartTopology
 Representation of a Cartesian grid topology definition. More...
 
class  pearl::CommLocationSet
 Grouping set definition representation for a set of Location definition objects participating in a particular paradigm. More...
 
class  pearl::CommSet
 Grouping set definition representation for defining a subgroup of Location definition objects from a communication location set. More...
 
class  pearl::Communicator
 Representation of a communicator definition. More...
 
class  pearl::CountedPtr< T >
 Non-intrusive reference-counted smart pointer. More...
 
class  pearl::Enter_rep
 Event representation for entering a source code region. More...
 
class  pearl::EnterCS_rep
 Event representation for entering a call site. More...
 
class  pearl::EnterProgram_rep
 Event representation for PROGRAM_BEGIN events. More...
 
class  pearl::Error
 Base class for exceptions related to the PEARL library. More...
 
class  pearl::RuntimeError
 Exception class related to the PEARL library for recoverable errors. More...
 
class  pearl::FatalError
 Exception class related to the PEARL library for unrecoverable errors. More...
 
class  pearl::MemoryError
 Exception class related to the PEARL library that is used to signal out of memory situations. More...
 
class  pearl::Event
 Generic representation for local events with iterator functionality. More...
 
struct  pearl::EventKeyCompare
 Provides a comparison operator that allows Event objects to be as key in std::map or std::set. More...
 
class  pearl::Event_rep
 Base class for all event representations. More...
 
class  pearl::GlobalDefs
 Stores the global definitions of a tracing experiment. More...
 
class  pearl::GroupingSet
 Abstract base class of grouping set definition representations. More...
 
class  pearl::Leave_rep
 Event representation for leaving a source code region. More...
 
class  pearl::LeaveProgram_rep
 Event representation for PROGRAM_END events. More...
 
class  pearl::LocalTrace
 Container class for local event traces. More...
 
class  pearl::Location
 Representation of a location definition. More...
 
class  pearl::LocationGroup
 Interface of location group definition representations. More...
 
class  pearl::LocationSet
 Grouping set definition representation for a set of Location definition objects. More...
 
class  pearl::Metric
 Stores information related to additional performance metrics. More...
 
class  pearl::MpiAmListener
 Listener using the communicator of an MpiWindow object. More...
 
class  pearl::MpiAmRequest
 Active message request using an MpiMessage buffer. More...
 
struct  pearl::Paradigm_enum
 Helper struct defining the enumerators of the Paradigm scoped enumeration. More...
 
class  pearl::Region
 Representation of a region definition. More...
 
class  pearl::RemoteEvent
 Generic representation for remote events without iterator functionality. More...
 
class  pearl::RemoteTimeSegment
 Auxiliary class to ease comparision between remote time segments. More...
 
class  pearl::RmaGetStart_rep
 Event representation for RMA_GET_START events. More...
 
class  pearl::RmaPutEnd_rep
 Event representation for RMA_PUT_END events. More...
 
class  pearl::RmaPutStart_rep
 Event representation for RMA_PUT_START events. More...
 
class  pearl::RmaWindow
 Base class for remote memory access windows. More...
 
class  pearl::ScopedEnum< base >
 Scoped enumeration class template. More...
 
class  pearl::SmallObject
 Provides a base class for small objects using a custom memory management. More...
 
class  pearl::SourceLocation
 Representation of a source-code location definition. More...
 
class  pearl::String
 Representation of a string definition. More...
 
class  pearl::SystemNode
 Representation of a system node definition. More...
 
class  pearl::ThreadAcquireLock_rep
 Event representation for THREAD_ACQUIRE_LOCK events. More...
 
class  pearl::ThreadBegin_rep
 Event representation for THREAD_BEGIN events. More...
 
class  pearl::ThreadCreate_rep
 Event representation for THREAD_CREATE events. More...
 
class  pearl::ThreadEnd_rep
 Event representation for THREAD_END events. More...
 
class  pearl::ThreadFork_rep
 Event representation for THREAD_FORK events. More...
 
class  pearl::ThreadJoin_rep
 Event representation for THREAD_JOIN events. More...
 
class  pearl::ThreadReleaseLock_rep
 Event representation for THREAD_RELEASE_LOCK events. More...
 
class  pearl::ThreadTaskComplete_rep
 Event representation for THREAD_TASK_COMPLETE events. More...
 
class  pearl::ThreadTaskCreate_rep
 Event representation for THREAD_TASK_CREATE events. More...
 
class  pearl::ThreadTaskSwitch_rep
 Event representation for THREAD_TASK_SWITCH events. More...
 
class  pearl::ThreadTeamBegin_rep
 Event representation for THREAD_TEAM_BEGIN events. More...
 
class  pearl::ThreadTeamEnd_rep
 Event representation for THREAD_TEAM_END events. More...
 
class  pearl::ThreadWait_rep
 Event representation for THREAD_WAIT events. More...
 
class  pearl::TimeSegment
 Auxiliary class to ease comparision between time segments. More...
 

Detailed Description

This part of the PEARL library provides all functions and classes that are independent of a multi-process parallelization paradigm. This includes the entire functionality to handle traces of serial as well as multi-threaded applications.

The following code snippet shows the basic steps required to load and set up the PEARL data structures to handle serial traces. To handle traces of multi-threaded applications, the steps between loading and freeing the trace data can be executed in parallel by multiple analysis threads. For information on how to handle pure MPI or hybrid MPI+threads traces, see the PEARL.mpi part of PEARL.

using namespace pearl;
...
// Initialize PEARL
PEARL_init();
// Open trace archive
TraceArchive* archive = TraceArchive::open(archive_name);
// Load global definitions
GlobalDefs* defs = archive->getDefinitions();
// Open trace container
const LocationGroup& process = defs->getLocationGroup(0);
archive->openTraceContainer(process);
// Load trace data of the master thread
const Location& location = process.getLocation(0);
LocalTrace* trace = archive->getTrace(*defs, location);
// Preprocessing
PEARL_verify_calltree(*defs, *trace);
PEARL_preprocess_trace(*defs, *trace);
// Process trace data
...
// Free trace data
delete trace;
// Close trace container & archive
delete archive;
// Free definition data
delete defs;
// Finalize PEARL

Note that the trace container can be closed immediately after all trace data has been loaded. However, this operation must only be performed by the master thread in a multi-threaded context. We therefore deliberately moved this function call near the end of the code snippet to simplify the description of how to handle traces in a multi-threaded context.

Also, all of the aforementioned PEARL API calls may throw exceptions in case of errors. This has to be taken into account to avoid deadlocks, for example, if one thread is failing with an exception while the other threads wait in a thread synchronization operation.

pearl::TraceArchive::openTraceContainer
void openTraceContainer(const LocationGroup &locGroup)
Open trace data container.
pearl::LocalTrace
Container class for local event traces.
Definition: LocalTrace.h:58
pearl::LocationGroup
Interface of location group definition representations.
Definition: LocationGroup.h:66
pearl::Location
Representation of a location definition.
Definition: Location.h:66
pearl
Namespace of the PEARL library.
Definition: AmHandler.h:38
pearl::GlobalDefs::getLocationGroup
const LocationGroup & getLocationGroup(LocationGroup::IdType id) const
LocationGroup lookup by identifier.
pearl::PEARL_preprocess_trace
void PEARL_preprocess_trace(const GlobalDefs &defs, const LocalTrace &trace)
pearl::TraceArchive::open
static TraceArchive * open(const std::string &anchorName)
Open an experiment archive.
pearl::PEARL_finalize
void PEARL_finalize()
pearl::PEARL_verify_calltree
void PEARL_verify_calltree(GlobalDefs &defs, LocalTrace &trace)
pearl::GlobalDefs
Stores the global definitions of a tracing experiment.
Definition: GlobalDefs.h:63
pearl::LocationGroup::getLocation
const Location & getLocation(uint32_t index) const
Get location.
pearl::TraceArchive
Abstract representation of a trace experiment archive.
Definition: TraceArchive.h:132
pearl::TraceArchive::closeTraceContainer
void closeTraceContainer()
Close trace data container.
pearl::TraceArchive::getDefinitions
GlobalDefs * getDefinitions()
Get global definitions.
pearl::TraceArchive::getTrace
LocalTrace * getTrace(const GlobalDefs &defs, const Location &location, LocalIdMaps *idMaps=0)
Get trace data.

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