2. Introduction

Extrae is a dynamic instrumentation package to trace programs compiled and run with the shared memory model (like OpenMP and pthreads), the message passing (MPI) programming model or both programming models (different MPI processes using OpenMP or pthreads within each MPI process). Extrae generates trace files that can be visualized with Paraver.

Extrae is currently available on different platforms and operating systems: IBM PowerPC running Linux or AIX, and x86 and x86-64 running Linux. It also has been ported to OpenSolaris and FreeBSD.

The combined use of Extrae and Paraver offers an enormous analysis potential, both qualitative and quantitative. With these tools the actual performance bottlenecks of parallel applications can be identified. The microscopic view of the program behavior that the tools provide is very useful to optimize the parallel program performance.

This document tries to give the basic knowledge to use the Extrae tool. Chapter Configuration, build and installation explains how the package can be configured and installed. Chapter Examples explains how to monitor an application to obtain its trace file. At the end of this document there are appendices that include: Frequently Asked Questions and a list of Instrumented routines in the package.

2.1. What is the Paraver tool?

Paraver is a flexible parallel program visualization and analysis tool based on an easy-to-use wxWidgets GUI. Paraver was developed responding to the need of having a qualitative global perception of the application behavior by visual inspection and then to be able to focus on the detailed quantitative analysis of the problems. Paraver provides a large amount of information useful to decide the points on which to invest the programming effort to optimize an application.

Expressive power, flexibility and the capability of efficiently handling large traces are key features addressed in the design of Paraver. The clear and modular structure of Paraver plays a significant role towers achieving these targets.

Some Paraver features are the support for:

  • Detailed quantitative analysis of program performance,
  • concurrent comparative analysis of several traces,
  • fast analysis of very large traces,
  • support for mixed message passing and shared memory (network of SMPs), and,
  • customizable semantics of the visualized information.

One of the main features of Paraver is the flexibility to represent traces coming from different environments. Traces are composed of state records, events and communications with associated timestamps. These three elements can be used to build traces that capture the behavior along time of very different kind of systems. The Paraver distribution includes, either in its own distribution or as additional packages, the following instrumentation modules:

  1. Sequential application tracing: it is included in the Paraver distribution. It can be used to trace the value of certain variables, procedure invocations, … in a sequential program.
  2. Parallel application tracing: a set of modules are optionally available to capture the activity of parallel applications using shared-memory, message-passing paradigms, or a combination of them.
  3. System activity tracing in a multiprogrammed environment: an application to trace processor allocations and process migrations is optionally available in the Paraver distribution.
  4. Hardware counters tracing: an application to trace the hardware counter values is optionally available in the Paraver distribution.

2.2. Where can the Paraver tool be found?

The Paraver distribution can be found at https://tools.bsc.es/downloads

Paraver binaries are available for Linux/x86, Linux/x86-64 and Linux/ia64, Windows.

In the Documentation section of the aforementioned URL you can find the |PARAVER| *Reference Manual* and |PARAVER| *Tutorial* in addition to the documentation for other instrumentation packages.

Extrae and Paraver tools e-mail support is tools@bsc.es.