SvPablo. Source view Pablo GUI for instrumenting source code and viewing runtime performance data...

24
SvPablo URL http://www-pablo.cs.uiuc.edu/ V ersion Pablo release 5.0 Languages H PF, A N SIC Platform s SG Irunning IR IX 6 Sun SPA RC running Solaris

Transcript of SvPablo. Source view Pablo GUI for instrumenting source code and viewing runtime performance data...

Page 1: SvPablo. Source view Pablo GUI for instrumenting source code and viewing runtime performance data Joint work at Univ. of Illinois and Rice Univ. HPF programs.

SvPablo

URL http://www-pablo.cs.uiuc.edu/

Version Pablo release 5.0

Languages HPF, ANSI C

Platforms SGI running IRIX 6Sun SPARC running Solaris

Page 2: SvPablo. Source view Pablo GUI for instrumenting source code and viewing runtime performance data Joint work at Univ. of Illinois and Rice Univ. HPF programs.

SvPablo

• Source view Pablo• GUI for instrumenting source code and viewing

runtime performance data• Joint work at Univ. of Illinois and Rice Univ.• HPF programs automatically instrumented by PGI

HPF compiler• C programs interactively instrumented using GUI• Fortran 77/90 parser developed at JPL

Page 3: SvPablo. Source view Pablo GUI for instrumenting source code and viewing runtime performance data Joint work at Univ. of Illinois and Rice Univ. HPF programs.

SvPablo Project

• Set of application source files

• One or more performance contexts

• Performance context includes

– instrumentation specification - source code points where performance measurements are to be inserted

– set of performance data files in SDDF, generated when instrumented code is run

• Source files and parser options are shared among all contexts.

Page 4: SvPablo. Source view Pablo GUI for instrumenting source code and viewing runtime performance data Joint work at Univ. of Illinois and Rice Univ. HPF programs.

SvPablo Main Window

Page 5: SvPablo. Source view Pablo GUI for instrumenting source code and viewing runtime performance data Joint work at Univ. of Illinois and Rice Univ. HPF programs.

Project Menu

Page 6: SvPablo. Source view Pablo GUI for instrumenting source code and viewing runtime performance data Joint work at Univ. of Illinois and Rice Univ. HPF programs.

Project Menu Selections

• New Project

• Open Project

• Edit Project

• Select Project Base Directory

• Load Color Configuration

• Exit SvPablo

Page 7: SvPablo. Source view Pablo GUI for instrumenting source code and viewing runtime performance data Joint work at Univ. of Illinois and Rice Univ. HPF programs.

SvPablo on-line help

Page 8: SvPablo. Source view Pablo GUI for instrumenting source code and viewing runtime performance data Joint work at Univ. of Illinois and Rice Univ. HPF programs.

New Project dialog box

Page 9: SvPablo. Source view Pablo GUI for instrumenting source code and viewing runtime performance data Joint work at Univ. of Illinois and Rice Univ. HPF programs.

Edit Project dialog box

Page 10: SvPablo. Source view Pablo GUI for instrumenting source code and viewing runtime performance data Joint work at Univ. of Illinois and Rice Univ. HPF programs.

Instrumentation of HPF Programs

• Given appropriate flags, the PGI HPF compiler automatically inserts calls to SvPablo instrumentation library routines at the beginning and end of every procedure and for each executable line.

• After compiling and linking with the SvPablo HPF trace library, the user runs the instrumented executable which generates per-process trace files.

• User runs HPFCombine to merge per-process trace files into a single performance file SDDF format.

Page 11: SvPablo. Source view Pablo GUI for instrumenting source code and viewing runtime performance data Joint work at Univ. of Illinois and Rice Univ. HPF programs.

Overview of HPF Instrumentation

Page 12: SvPablo. Source view Pablo GUI for instrumenting source code and viewing runtime performance data Joint work at Univ. of Illinois and Rice Univ. HPF programs.

Compiling and Linking

Compile with pghpf flag -Mprof=lines to active calls to the SvPablo HPF trace library:

% pghpf -c -Mprof=lines part1.F % pghpf -c -Mprof=lines part2.F

Link with flag -Mprof=lines to activate calls to both theSvPablo HPF trace library and the PGI profiler library.Link with flag -Mprof=stats to activate only calls to the SvPablo HPF trace library: % pghpf -Mprof=stats part1.o part2.o /usr/local/SvPablo/lib/pghpf2SDDF.o

Page 13: SvPablo. Source view Pablo GUI for instrumenting source code and viewing runtime performance data Joint work at Univ. of Illinois and Rice Univ. HPF programs.

Procedure Metrics

• Count

• Exclusive Duration

• Inclusive Duration

• Send Msg Duration

• Receive Msg Duration

Page 14: SvPablo. Source view Pablo GUI for instrumenting source code and viewing runtime performance data Joint work at Univ. of Illinois and Rice Univ. HPF programs.

Line Metrics

• Count

• Duration

• Exclusive Duration

• Message Send Duration

• Message Send Count

• Message Send Size

• Message Receive Duration

• Message Receive Count

• Message Receive Size

Page 15: SvPablo. Source view Pablo GUI for instrumenting source code and viewing runtime performance data Joint work at Univ. of Illinois and Rice Univ. HPF programs.

Performance Statistics

• Performance file contains the following statistics for the procedure and line performance metrics:

– mean

– standard deviation

– minimum value

– process corresponding to minimum value

– maximum value

– process corresponding to maximum value

Page 16: SvPablo. Source view Pablo GUI for instrumenting source code and viewing runtime performance data Joint work at Univ. of Illinois and Rice Univ. HPF programs.

Performance view of HPF program

Page 17: SvPablo. Source view Pablo GUI for instrumenting source code and viewing runtime performance data Joint work at Univ. of Illinois and Rice Univ. HPF programs.

Performance statistics for subroutine relax

Page 18: SvPablo. Source view Pablo GUI for instrumenting source code and viewing runtime performance data Joint work at Univ. of Illinois and Rice Univ. HPF programs.

Instrumentation of C Programs

• Use GUI to instrument selected constructs in C source files

• Compile instrumented source files and link with SvPablo C Trace Library

• Run instrumented executable

• Combine per-process trace files using CCombine

Page 19: SvPablo. Source view Pablo GUI for instrumenting source code and viewing runtime performance data Joint work at Univ. of Illinois and Rice Univ. HPF programs.

Overview of C Instrumentation

Page 20: SvPablo. Source view Pablo GUI for instrumenting source code and viewing runtime performance data Joint work at Univ. of Illinois and Rice Univ. HPF programs.

C Instrumentation GUI

Page 21: SvPablo. Source view Pablo GUI for instrumenting source code and viewing runtime performance data Joint work at Univ. of Illinois and Rice Univ. HPF programs.

Multiple instrumentable constructs in source line

Page 22: SvPablo. Source view Pablo GUI for instrumenting source code and viewing runtime performance data Joint work at Univ. of Illinois and Rice Univ. HPF programs.

Instrument options for routine main

Page 23: SvPablo. Source view Pablo GUI for instrumenting source code and viewing runtime performance data Joint work at Univ. of Illinois and Rice Univ. HPF programs.

Files Created By Saving Instrumentation

• Each instrumented file is saved as <file name>.<inst directory>.inst.c

• The following files are saved in the instrumentation directory:

– InstrumentationInit.c, containing the new main function for the instrumented program

– projectHistory file, containing information for the parser and for CCombine

– a configuration file named <file name>.c.config for each instrumented file, containing the instrumented points used by the GUI

Page 24: SvPablo. Source view Pablo GUI for instrumenting source code and viewing runtime performance data Joint work at Univ. of Illinois and Rice Univ. HPF programs.

Compiling and Linking

% cc -64 -c file1.Context1.inst.c

% cc -64 -c file2.Context1.inst.c

% cc -64 -c Context1/InstrumentationInit.c

% cc -64 -o app file1.Context1.inst.o file2.Context2.inst.o \

InstrumentationInit.o /usr/local/SvPablo/lib/cTrace.o \

/usr/local/SvPablo/lib/svPabloLib_MPI.o

-L/usr/lib64/libmpi.so -lmpi