pearl Namespace Reference

Namespace of the PEARL library. More...


Classes

class  Buffer
 Generic memory buffer implementation. More...
class  Callsite
 Stores information related to a call site. More...
class  Cartesian
 Stores information related to cartesian grid topologies. More...
class  CNode
 Stores information related to a call tree node. More...
class  CountedPtr
 Non-intrusive reference-counted smart pointer. 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_rep
 Base class for all event representations. More...
class  GlobalDefs
 Stores the global definitions of a tracing experiment. More...
class  Group
 Stores information related to a group of processes. More...
class  IdObject
 Base class for entities with a numerical identifier. More...
class  Event
 Generic representation for local events with iterator functionality. More...
class  LocalTrace
 Container class for local event traces. More...
class  Location
 Stores the information that uniquely identifies a location in the system hierarchy. More...
class  Machine
 Stores information related to a machine used during trace file generation. More...
class  Metric
 Stores information related to additional performance metrics. More...
class  NamedObject
 Base class for named entities with a numerical identifier. More...
class  Node
 Stores information related to a node that is part of a machine used for trace generation. More...
class  Process
 Stores information related to a process of the target application. More...
class  Region
 Stores information related to a source-code region. More...
class  RemoteEvent
 Generic representation for remote events without iterator functionality. 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  Thread
 Stores information related to a thread of the target application. More...
class  Topology
 Base class for virtual topologies. More...
class  EventSet
 Container class for a set of local events with associated roles. More...
class  MpiCartesian
 Stores information related to a virtual cartesian MPI topology. More...
class  MpiComm
 Stores information related to an MPI communicator. More...
class  MpiMessage
 Abstraction layer for MPI messages. More...
class  MpiWindow
 Stores information related to an MPI-2 remote memory access window. More...
class  RemoteEventSet
 Container class for a set of remote events with associated roles. 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  CompoundTask
 Maintains a set of tasks and executes them in sequence. 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  Task
 Abstract base class for a generic Task. More...
class  TaskWrapper
 Abstract base class for a wrapper task. More...

Typedefs

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 CountedPtr< CallbackCallbackPtr
 Type name for reference-counted callback objects.

Enumerations

enum  event_t {
  ANY, FLOW, ENTER, ENTER_CS,
  EXIT, MPI_COLLEXIT, MPI_P2P, MPI_SEND,
  MPI_RECV, OMP_FORK, OMP_JOIN, OMP_COLLEXIT,
  OMP_LOCK, OMP_ALOCK, OMP_RLOCK, NUM_EVENT_TYPES
}
 Enumeration defining available event types.

Functions

void PEARL_new_handler ()
std::ostream & operator<< (std::ostream &stream, const IdObject &item)
std::ostream & operator<< (std::ostream &stream, const Event &event)
std::string event_typestr (event_t type)
std::ostream & operator<< (std::ostream &stream, const Location &item)
std::ostream & operator<< (std::ostream &stream, const NamedObject &item)
std::ostream & operator<< (std::ostream &stream, const RemoteEvent &event)
template<class classT , typename funcT >
CallbackPtr PEARL_create_callback (classT *instance, funcT function)
Library initialization
void PEARL_init ()
void PEARL_mpi_init ()
void PEARL_omp_init ()
void PEARL_hybrid_init ()
Call tree verification
void PEARL_verify_calltree (GlobalDefs &defs, const LocalTrace &trace)
void PEARL_omp_verify_calltree (GlobalDefs &defs, const LocalTrace &trace)
Call tree unification
void PEARL_mpi_unify_calltree (GlobalDefs &defs)
Trace preprocessing
void PEARL_preprocess_trace (const GlobalDefs &defs, const LocalTrace &trace)
void PEARL_omp_preprocess_trace (const GlobalDefs &defs, const LocalTrace &trace)
Replay functionality
void PEARL_forward_replay (const LocalTrace &trace, const CallbackManager &cbmanager, CallbackData *data)
void PEARL_backward_replay (const LocalTrace &trace, const CallbackManager &cbmanager, CallbackData *data)

Variables

const ident_t PEARL_NO_ID = 0xFFFFFFFF
 Constant used to identify unused/unknown 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 Recognition Library PEARL.


Function Documentation

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

Writes the numerical identifier and the name of the given NamedObject instance item to the output stream stream.

Parameters:
stream Output stream
item NamedObject instance
Returns:
Output stream

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

Writes the location information stored for the given item consisting of the machine, node, process, and thread (including IDs and names) to the output stream stream.

Parameters:
stream Output stream
item Location instance
Returns:
Output stream

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

Writes the numerical identifier of the given IdObject instance item to the output stream stream.

Parameters:
stream Output stream
item IdObject instance
Returns:
Output stream

void PEARL_hybrid_init (  ) 

Initializes the PEARL library and installs a custom out-of-memory handler. It is required to call one of the PEARL initialization functions before calling any other PEARL function or instantiating any PEARL class.

Attention:
Make sure to initialize PEARL before installing any exit handlers using atexit(). Otherwise, you might get error messages about memory leaks.
Note:
This function is intended to be used in hybrid OpenMP/MPI PEARL programs.
See also:
PEARL_init(), PEARL_omp_init(), PEARL_mpi_init()

void PEARL_init (  ) 

Initializes the PEARL library and installs a custom out-of-memory handler. It is required to call one of the PEARL initialization functions before calling any other PEARL function or instantiating any PEARL class.

Attention:
Make sure to initialize PEARL before installing any exit handlers using atexit(). Otherwise, you might get error messages about memory leaks.
Note:
This function is intended to be used in serial PEARL programs.
See also:
PEARL_omp_init(), PEARL_mpi_init(), PEARL_hybrid_init()

void PEARL_mpi_init (  ) 

Initializes the PEARL library and installs a custom out-of-memory handler. It is required to call one of the PEARL initialization functions before calling any other PEARL function or instantiating any PEARL class.

Attention:
Make sure to initialize PEARL before installing any exit handlers using atexit(). Otherwise, you might get error messages about memory leaks.
Note:
This function is intended to be used in pure MPI-based PEARL programs.
See also:
PEARL_init(), PEARL_omp_init(), PEARL_hybrid_init()

void PEARL_mpi_unify_calltree ( GlobalDefs defs  ) 

Combines process-local call trees into a global one. Since this is conceptually a sequential process, the actual unification is only carried out if the process-local call trees have been modified after reading the trace, i.e., the call tree provided by the global definitions object was incomplete. Therefore, this function should only be called after verifying the process-local call tree using PEARL_verify_calltree() or PEARL_omp_verify_calltree(), but before preprocessing the trace data via PEARL_preprocess_trace() or PEARL_omp_preprocess_trace().

Note:
This function is intended to be used in pure MPI-based or hybrid OpenMP/MPI PEARL programs. In the case of a hybrid OpenMP/MPI program, make sure to call this function only from the master thread.
Parameters:
defs Global definitions object
See also:
PEARL_verify_calltree(), PEARL_omp_verify_calltree(), PEARL_preprocess_trace(), PEARL_omp_preprocess_trace()

void PEARL_omp_init (  ) 

Initializes the PEARL library and installs a custom out-of-memory handler. It is required to call one of the PEARL initialization functions before calling any other PEARL function or instantiating any PEARL class.

Attention:
Make sure to initialize PEARL before installing any exit handlers using atexit(). Otherwise, you might get error messages about memory leaks.
Note:
This function is intended to be used in pure OpenMP-based PEARL programs.
See also:
PEARL_init(), PEARL_mpi_init(), PEARL_hybrid_init()

void PEARL_omp_preprocess_trace ( const GlobalDefs defs,
const LocalTrace trace 
)

Performs some local preprocessing of the given trace which is required to provide the full trace-access functionality. This has to be done as the last step in setting up the data structures, i.e., after calling PEARL_omp_verify_calltree() and PEARL_mpi_unify_calltree().

Note:
This function is intended to be used in OpenMP-based PEARL programs, i.e., pure OpenMP or hybrid OpenMP/MPI.
Parameters:
defs Global definitions object
trace Local trace data object
See also:
PEARL_preprocess_trace(), PEARL_omp_verify_calltree(), PEARL_mpi_unify_calltree()

void PEARL_omp_verify_calltree ( GlobalDefs defs,
const LocalTrace trace 
)

Verifies whether the global call tree provided by the trace definition data defs is complete with respect to the local trace data. If not, the process-local call tree is extended accordingly. This has to be done before PEARL_omp_preprocess_trace() is called.

Note:
This function is intended to be used in OpenMP-based PEARL programs, i.e., pure OpenMP or hybrid OpenMP/MPI. In the case of a hybrid program, the process-local call trees need to be combined using PEARL_mpi_unify_calltree() to get the global call tree.
Parameters:
defs Global definitions object
trace Local trace data object
See also:
PEARL_verify_calltree(), PEARL_mpi_unify_calltree(), PEARL_omp_preprocess_trace()

void PEARL_preprocess_trace ( const GlobalDefs defs,
const LocalTrace trace 
)

Performs some local preprocessing of the given trace which is required to provide the full trace-access functionality. This has to be done as the last step in setting up the data structures, i.e., after calling PEARL_verify_calltree() and PEARL_mpi_unify_calltree().

Note:
This function is intended to be used in single-threaded PEARL programs, i.e., serial or pure MPI.
Parameters:
defs Global definitions object
trace Local trace data object
See also:
PEARL_omp_preprocess_trace(), PEARL_verify_calltree(), PEARL_mpi_unify_calltree()

void PEARL_verify_calltree ( GlobalDefs defs,
const LocalTrace trace 
)

Verifies whether the global call tree provided by the trace definition data defs is complete with respect to the local trace data. If not, the process-local call tree is extended accordingly. This has to be done before PEARL_preprocess_trace() is called.

Note:
This function is intended to be used in single-threaded PEARL programs, i.e., serial or pure MPI. In the case of MPI, the process-local call trees need to be combined by calling PEARL_mpi_unify_calltree() to get the global call tree.
Parameters:
defs Global definitions object
trace Local trace data object
See also:
PEARL_omp_verify_calltree(), PEARL_mpi_unify_calltree(), PEARL_preprocess_trace()


SCALASCA    Copyright © 1998–2009 Forschungszentrum Jülich, Jülich Supercomputing Centre