Parallel
Systems
Parallel Performance Tool EPPA:
Documentation
Objectives (Read also our EPPA PR-talk)
- To automate the measurement and analysis of the parallel
performance.
- Your code is instrumented automatically as explained below and at
runtime, the
different
phases of the parallel processing are measured (computation,
communication,
synchronisation, partitioning and blocking) and stored in the
database.
The Graphical Tool presents the result in a userfriendly way.
Download (for MPI)
- Instrumentation files (par
library)
- Analysis tools (above par
library is included)
Extract archives with
tar -zxf <file>
Set the PARDIR
variable to the directory where you put the files
Needed: qt, mysql
& mpi
MPI User Guide
The files & their purpose
On our LINUX system, the files are under the PARDIR directory
(set to /home/parallel/software).
The files:
- the executable EPPA
- the header files: standardlib.h (put them into PARDIR/include)
- the library: libpar.a (contains the necessary object
files)
- mysql (in MYSQLDIR)
Include them in the projectfile as follow:
INCLUDEPATH = $(PARDIR)/include
LIBS
= -L$(MYSQLDIR)/lib
-L$(PARDIR)/lib -lpar -lmysqlclient
Extra instrumentation
The constants are defined in standardlib.h, but their integer value can
also be applied.
Add the correct parameters for
each level!
- Enable/disable profiling (call
before MPI_Init call!!)
- MPI_Pcontrol(0);
or MPI_Pcontrol(DISABLE_PROFILING);
(default value)
- MPI_Pcontrol(1); or
MPI_Pcontrol(ENABLE_PROFILING);
// to start the EPPA profiling
- MPI_Pcontrol(2); or
MPI_Pcontrol(STOP_PROFILING);
// stop profiling, before a new profiling (eg EPPASeqProbe) can start
- Application information
- MPI_Pcontrol(APPLICATION,
string); (call before MPI_Init call!!)
- MPI_Pcontrol(PROJECT,
string); (call before MPI_Init call!!) to group applications
into projects
- MPI_Pcontrol(APP_COMMENT,
string); comment about the application
- MPI_Pcontrol(EXP_COMMENT,string);
comment about the experiment (can be changed in EPPA)
- Application parameters
- MPI_Pcontrol(PROBLEM_SIZE,
integer);
- MPI_Pcontrol(MASTER_IS_NOT_WORKING);
EPPA will not count the master in the 'p'-parameter and in the
efficiency
- Computation phase parameters (call during the computation phase)
- MPI_Pcontrol(NBR_QUANTUMS,
integer);
- MPI_Pcontrol(NBR_OPERATIONS,
integer);
- Type of computation phase (call at end of the computation phase)
- MPI_Pcontrol(SPECIFY_COMP_PHASE,
<phase>);
- MPI_Pcontrol(END_COMP_PHASE,
<phase>);
- <phase>:
USEFUL_WORK_PHASE, PARTITIONING_PHASE, SYNCHRONIZATION_PHASE
- Start/Stop measurements (optional)
- MPI_Pcontrol(START_MEASURING); // your
parallel application starts, after the MPI_Init call (which is the
default begin of the time measurements)
- MPI_Pcontrol(STOP_MEASURING); // your
parallel application starts, before MPI_Finalize call (which is the
default end of the time measurements)
- Additional measurements
- MPI_Pcontrol(MEASUREMENT_VALUE,
string name, double value);
MPI
example program with EPPA profiling
Tool EPPA
Run of the programs:
EPPA
ViewExp <experiment ID>
- Back to
the top
-