/****************************************************************************
**  SCALASCA    http://www.scalasca.org/                                   **
*****************************************************************************
**  Copyright (c) 1998-2012                                                **
**  Forschungszentrum Juelich GmbH, Juelich Supercomputing Centre          **
**                                                                         **
**  See the file COPYRIGHT in the package base directory for details       **
****************************************************************************/


/*
 *---------------------------------------------------------------------------
 *
 * PEARL.base
 *
 *---------------------------------------------------------------------------
 */


//--- Library description ---------------------------------------------------

/**
@defgroup PEARL_base PEARL.base
@ingroup  PEARL
@brief    Paradigm-independent part of the PEARL library

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

The following code snippet shows the basic steps required to load and set up
the PEARL data structures to handle seriel traces (for information on
how to handle pure OpenMP, pure MPI or hybrid OpenMP/MPI traces, see the @ref
PEARL_omp, @ref PEARL_mpi, and @ref PEARL_hybrid parts of PEARL).

@code
  ...
  // Initialize PEARL
  PEARL_init();

  // Load global definitions & trace data
  GlobalDefs defs(archive_name);
  LocalTrace trace(archive_name, 0);

  // Preprocessing
  PEARL_verify_calltree(defs, trace);
  PEARL_preprocess_trace(defs, trace);
  ...
@endcode

Note that all of the aforementioned function calls except PEARL_init()
throw exceptions in case of errors.
*/
