projections - a step by step tutorial

35
Projections - A Step by Step Tutorial By Chee Wai Lee For the 2004 Charm++ Workshop

Upload: kenyon

Post on 07-Jan-2016

63 views

Category:

Documents


0 download

DESCRIPTION

Projections - A Step by Step Tutorial. By Chee Wai Lee For the 2004 Charm++ Workshop. Outline. Introduction to Projections. Basic features. Advanced features. Basic performance analysis techniques. Soon-to-be ready features. An Introduction to Projections. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Projections -  A Step by Step Tutorial

Projections - A Step by Step Tutorial

By Chee Wai Lee

For the 2004 Charm++ Workshop

Page 2: Projections -  A Step by Step Tutorial

Outline Introduction to Projections.Basic features.Advanced features.Basic performance analysis techniques.Soon-to-be ready features.

Page 3: Projections -  A Step by Step Tutorial

An Introduction to Projections Performance Analysis tool

for Charm++ based applications.

Automatic trace instrumentation.

Post-mortem visualization. Multiple advanced

features that support: Data volume control Generation of additional

user data.

Page 4: Projections -  A Step by Step Tutorial

Basic Features (outline)Changes to code (none!)Link time decisions.Run time decisions (none!)Basic Visualization.

Page 5: Projections -  A Step by Step Tutorial

Coding, Linking & RunningNo changes to Charm++ program

required!Choose and link an appropriate trace

module. Tracemode “projections” Tracemode “summary”

No changes required to the way application is run.

Example program - Jacobi2D

Page 6: Projections -  A Step by Step Tutorial

Tracemode Projections Each Charm++ event

appears as a line of text in log file.

At link time, specify “-tracemode projections”

Supported by all views in the visualization tool.

Page 7: Projections -  A Step by Step Tutorial

Tracemode summary Contains:

Processor utilization information over entire run.

Total execution time attributed to each Charm++ entry method.

Number of times each entry method is called.

At link time, specify:“-tracemode summary”

Limited visualization support.

Page 8: Projections -  A Step by Step Tutorial

Coding, Linking & Running Example -Jacobi2D

Page 9: Projections -  A Step by Step Tutorial

Basic Visualization

Page 10: Projections -  A Step by Step Tutorial

Visualization - outline.Summary mode

Summary graph screen. Overview. Usage Profile.

Miscellaneous Dialog box features.

Page 11: Projections -  A Step by Step Tutorial

Visualization - outline (cont)Projections Log mode

Overview and Usage Profile as before. Flexible Graph view. Histograms. Time Profile. Timeline. Animations. Miscellaneous features.

Page 12: Projections -  A Step by Step Tutorial

Summary Mode Visualization

Page 13: Projections -  A Step by Step Tutorial

The Summary View

• Provides a view of the overall utilization of the application.

• Very quick to load.

Page 14: Projections -  A Step by Step Tutorial

Overview

• Shows utitlization as a color scale split by processor over time.

• Useful for identifying the processor responsible for bad behavior.

Page 15: Projections -  A Step by Step Tutorial

Usage Profile

• Shows the contribution of utilization by each entry point.

• Useful for identifying badly behaved entry points.

Page 16: Projections -  A Step by Step Tutorial

Dialog boxes

• Flexible processor specification string. E.g. “0,2-5,45-127:5”

• Ability to save up to 5 commonly used time ranges

Page 17: Projections -  A Step by Step Tutorial

Projections Log ModeVisualization

Page 18: Projections -  A Step by Step Tutorial

Overview & Usage ProfileThese views are similar to the ones for

summary-based visualization.They may differ somewhat because

additional information (eg. Idle time) becomes available in full log traces.

They also take longer to load.

Page 19: Projections -  A Step by Step Tutorial

Graph View

• Features:• Selectively view Entry points.• Convenient means to switch to between axes data types.

Page 20: Projections -  A Step by Step Tutorial

Histograms - time based

• Divide the time spent by entry methods into various bin sizes and count them.

• Useful for determining if there’s a grainsize problem.

Page 21: Projections -  A Step by Step Tutorial

Histograms - communication

• Frequency counts for communication-based properties.

Page 22: Projections -  A Step by Step Tutorial

Time Profiles• Shows the spread of Charm++ entry methods over time.

Page 23: Projections -  A Step by Step Tutorial

Timeline

• The most detailed view in Projections.• Useful for understanding critical path issues or unusual entry point behaviors at specific times.

Page 24: Projections -  A Step by Step Tutorial

Animations

Page 25: Projections -  A Step by Step Tutorial

Miscellaneous Features -Color Selection• Colors are automatically supplied by default.• We allow users to select their own colors and save them.• These colors can then be restored the next time Projections loads.

Page 26: Projections -  A Step by Step Tutorial

Advanced Features

Page 27: Projections -  A Step by Step Tutorial

Advanced Features - outlineUser APIsRuntime tracing optionsVisualization support for features.

Page 28: Projections -  A Step by Step Tutorial

User APIsControlling trace generation

void traceBegin() void traceEnd()

Tracing User Events int traceRegisterUserEvent(char *, int) void traceUserEvent(char *) void traceUserBracketEvent(int, double,

double) double CmiWallTimer()

Page 29: Projections -  A Step by Step Tutorial

Runtime options+traceoff+traceroot <directory>Projections mode only:

+logsize <# entries> +gz-trace

Summary mode only: +bincount <# of intervals> +binsize <interval time quanta (us)>

Page 30: Projections -  A Step by Step Tutorial

Visualization of user events

Page 31: Projections -  A Step by Step Tutorial

User Events (cont)

• Detailed information about User Events can be acquired via a table.

Page 32: Projections -  A Step by Step Tutorial

Monitoring messages

• Right-clicking on an entry method in Timeline causes a line to be drawn from the corresponding send event.

Page 33: Projections -  A Step by Step Tutorial

Soon-to-be ready features Instrumenting function calls in AMPI.Flexible Performance counter data

acquisition.

Page 34: Projections -  A Step by Step Tutorial

Instrumenting AMPI function calls.REGISTER_FUNCTION(“user function

description string”);TRACE_FUNC(<func call code>,

“user function description string”);

Page 35: Projections -  A Step by Step Tutorial

Basic Performance AnalysisTechniques - A case study