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.
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.