[MAIN]
 
[OVERVIEW]
 
[REQUIREMENTS]
 
[DOWNLOAD]
 
[DOCUMENTATION]
This work partially funded by NASA GSRP (NGT 5-50165) and does not represent the position or opinions of the United States Government

IDB Probe Library Documentation

Requirements

The IDB Probe Library requires MPI. It has been tested with mpich.

The IDB Probe Library can make use of PAPI to collect hardware performance data. The PAPI library must be present in your system before configuration of the probe library if you wish to make use of this feature.

Installation

The IDB Probe Library uses the GNU autoconf package to automatically configure itself according to your system. This allows for an easy install on most UNIX systems. For a normal installation, simply run the following commands in the probelib directory:

./configure
make
make install
Several arguments can be passed to the configure script to customize behavior:
--prefix=PREFIX
By default, the prefix is /usr/local and IDB installs the probe library at /usr/local/lib and the headers at /usr/local/include. You may specify a different prefix if so desired.
--with-debug
Enable compilation of debugging symbols
--with-mpiCC=PATH
IDB Probelib requires MPI to compile. If the mpiCC script is not in your system path, you may specify its location here.
--disable-sharedlib
Disable compilation of the shared library version of probelib.
--with-papi-includes=DIR
IDB Probelib may be compiled with PAPI support. If the configure script is unable to find your PAPI installation, you may specify the path of the PAPI include files here.
--with-papi-libraries=DIR
IDB Probelib may be compiled with PAPI support. If the configure script is unable to find your PAPI installation, you may specify the path of the PAPI library files here.

Usage

Any program may be modified to be instrumented with IDB. The IDB probe library can collect performance data about four significant events. These events are: procedures, loops, procedure calls and communications. Instead of considering the entire CFG, we only look at the subset consisting of these critical events. The IDB API is used to specify the subset of all events to monitor. A user may manually insert probes at desired points in the program or use the Automated Instrumentation Tool for a graphical user interface. The resulting subgraph of these events is the Control Flow Hierarchy, or CFH for short. Each node maps these performance critical events to collected performance data.

At the end of program execution, an output file containing the CFH and the performance data is created. This file is named populate.sql and contains SQL statements necessary to populate the IDB performance database.

Before the database is populated, it must first be created with the proper database schema. The file schema-create.sql in the probelib directory contains the SQL statements necessary to accomplish this. After the schema is created, the statements in populate.sql can be executed to populate the database with performance data from an experiment. If you have multiple populate.sql files from multiple experiments, you may execute each file once to populate the database with different instances of performance data.

Example: (postgresql)
    createdb idbtest
    psql -f schema-create.sql idbtest
    psql -f populate.sql-run1 idbtest
    psql -f populate.sql-run2 idbtest

After the performance data is imported into a database, you may view it with any application that interfaces with your database. A specific Visualization Tool tailored to IDB is available for easy analysis of the collected data.

See Also

IDB API description, IDB database schema

Last updated on March 22, 2001
(c) 1999-2001 Jonathan Chen, Jeffrey Nesheiwat and Boleslaw Szymanski