![]() |
PEARL
Parallel Event Access and Replay Library
|
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... | |
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.
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.
![]() |
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 |