140 likes | 155 Views
Learn the 3 basic steps of data collection, transformation, and visualization for program performance analysis. Explore profiles, counters, and event traces techniques. Understand the advantages and disadvantages of each method to enhance accuracy and simplicity of data interpretation.
E N D
CS 584 Lecture 21 • Project Proposal • Due Friday! • In my box in the CS office • No class on Friday • Paper presentation on Wednesday • Tom Abbott
Performance AnalysisRemember: In measuring, we change what we are measuring. • 3 Basic Steps • Data Collection • Data Transformation • Data Visualization • Many tools are available, but consider • Accuracy, Simplicity, Flexibility • Intrusiveness, and Abstraction
Data Collection • The process by which data about the performance of a program are gathered. • 3 Techniques • Profiles • Counters • Event Traces
Profiles • Shows time spent in portions of the code. • Advantages • Profiles can be obtained automatically • Should be the first technique used to gather and analyze performance data • Disadvantages • Don't generally consider temporal aspects of a parallel program.
Counters • Storage location that counts events • Number of sends/receives • Number of procedure calls, etc. • Can be compiler generated as in a profile • Also includes interval timers • Time spent in a piece of code • Idle time, function time, etc.
Traces • Low level approach to data collection • A log file is generated which records the event and a time stamp, etc. Trace Record Description 11 0 1553 2 0 1078 Timer Data 6 0 2237 2 1 1 8 Receive 11 0 2237 2 0 1078 Timer Data 11 0 2500 2 0 1341 Timer Data 4 0 3186 2 3 2 12 Send 11 0 3186 2 0 1341 Timer Data
Traces • Advantages • Support a broad study of program behavior • Can be post-processed to obtained profiles, etc. • Contains other data (message size, etc.) • Disadvantages • Huge log files (eg. 20 bytes per event) • Perturbs performance • Sophisticated analysis is required
Data Transformation & Visualization • Profiles, counts, and trace data are difficult to directly interpret. • Goal: Present the data to the programmer in such a way that interpretation is simple. • Histogram • Gantt chart • Space-time diagram
Tools • XPVM • Instrumented PVM code • Space-time chart based • Upshot • Instrumented MPI code • Gantt chart based I couldn’t get this to work on our machines