CS 584
Performance Analysis Remember: 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 RecordDescription Timer Data Receive Timer Data Timer Data Send 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
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