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

Upload: rafe-lester

Post on 14-Jan-2016

216 views

Category:

Documents


4 download

TRANSCRIPT

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