Solaris Studio Topics: Analyzing

Analyzing Application Performance with the Solaris Studio Performance Analyzer


 Developing high performance applications requires a combination of compiler features, libraries of optimized functions, and tools for performance analysis. The Solaris Studio Performance Analyzer can help you assess the performance of your code, identify potential performance problems, and locate the part of the code where the problems occur. The Performance Analyzer can be used from the command line or from a graphical user interface.

The Performance Analyzer consists of two tools, the collector and the analyzer. The Collector collects performance data by profiling and tracing function calls. The data can include call stacks, microstate accounting information, thread-synchronization delay data, hardware-counter overflow data, OpenMP threads and MPI function call data, memory allocation data and summary information for the operating system and the process. The Collector can collect all kinds of data for C, C++ and Fortran programs as well as profiling applications written in Java. 

The Performance Analyzer itself displays the data recorded by the Collector. It processes the data from the Collector and displays various metrics of performance at the level of the program, the functions, the source lines, and the instructions. These metrics are classed into five groups: timing metrics, hardware counter metrics, synchronization delay metrics, memory allocation metrics, and MPI tracing metrics. The Analyzer also displays the raw data in a graphical format as a function of time.

Overview

Oracle Solaris Studio Performance Tools White Paper
Oracle Solaris Studio performance tools answer questions about application performance.This article describes the performance tools' user model, the data collection process and the data that can be collected, the Performance Analyzer and its displays, and, finally, shows a number of examples of what the tools can do.  (November 2010) 
 

Screencasts and Videos

Developing OpenMP 3.0 Applications
Bin Fan demonstrates building, debugging and profiling an OpenMP 3.0 application, which utilizes OpenMP 3.0 tasking.

Performance Analyzer: MPI Application Profiling
In this screencast, Yukon Maruyama demonstrates profiling of distributed MPI applications.

Marty Itzkowitz and Yukon Maruyama -- What's New in the Sun Performance Analyzer
Presented at the Sun HPC Consortium meeting in Austin, Texas, November 2008.

»  See more screencasts on the Demos page.
 

Tutorials

MPI Application Profiling Tutorial
Shows how to use Analyzer to detect performance issues in distributed-memory MPI parallel programs.
(September 2010)

 

Performance Analyzer Documentation

Quick Start Guide to using the Performance Tools. ( Updated March 2007 )
 
Reference Manual: Performance Analyzer
Complete reference for using the Collector and Analyzer and how to interpret the results.
(December 2011)

Reference Manual: Thread Analyzer User Guide
Details on compiling and running multi-threaded programs with the Thread Analyzer to detect deadlocks and data races. (December 2011)

See What's New In Oracle Solaris Studio 12.3 for information on new and changed features in the current release of the performance analysis tools.
 

Discussion Forum: Solaris Studio Tools Forum
Ask questions about and discuss program performance analysis with the community and experts.

Technical Articles

HPC Profiling with the Sun Studio Performance Tools
Sun Microsystems' Marty Itzkowitz and Yukon Maruyama describe how to use the Sun Studio Performance Tools to understand the performance issues in single-threaded, multi-threaded, OpenMP, and MPI applications, and the techniques used to profile them. This paper was originally presented at the Third Parallel Tools Workshop held in Dresden, Germany in September.
(October 2009)

Profiling MPI Applications
This article details the profiling of Message Passing Interface (MPI) applications with the Sun Studio Performance Tools. Get an overview of MPI performance data and learn how to compile and launch your application for performance profiling. (February 2009)

Introducing the Sun Studio Performance Tools
The Sun Studio performance tools are designed to help answer questions about application performance. This article discusses the kinds of performance questions that users typically ask and describes the model for using the tools, and for building the target executable, along with the data collection process, the data that can be collected. The article also describes the Analyzer and its displays, and shows a number of examples of what it can do and concludes with a testing strategy for the tools, and some planned extensions to their functionality.

Profiling Java Applications With Sun Studio Performance Tools
How to use the performance analyzer to profile Java applications.  (August 25, 2006)

Profiling WebSphere Application Servers with Sun Studio Performance Tools
This article describes how to profile an IBM WebSphere Application Server (WAS) runtime environment with the Sun Studio Performance Analysis Tools, Collector and Analyzer. (January 30, 2007)

Profiling WebLogic Servers With Sun Studio Performance Tools
WebLogic servers are Java applications that can also be profiled using the Sun Studio Performance Analyzer. This article shows how.  (August 25, 2006)

How to Use Remote Development in the IDE
This article describes the modes of remote development available in the Oracle Solaris Studio 12.3 IDE and how to choose the best one for your development environment. 

Performance Tips for the Oracle Solaris Studio IDE
This article describes some tips and tricks to help you improve the performance of the Oracle Solaris Studio IDE.

How to Develop Code from a Remote Desktop with Oracle Solaris Studio
This article describes the remote desktop feature of the Oracle Solaris Studio IDE, and how to use it to compile, run, debug, and profile your code running on remote servers.

Oracle Solaris Studio Performance Tools
 
This article describes the kinds of performance questions users typically ask, and then it describes the Oracle Solaris Studio performance tools and shows examples of what the tools can do. (PDF)

 
 

Further Reading


Solaris Application Programming by Darryl Gove
Solaris Application Programming is a comprehensive guide to optimizing the performance of applications running in your Solaris environment. From the fundamentals of system performance to using analysis and optimization tools to their fullest, this wide-ranging resource shows developers and software architects how to get the most from Solaris systems and applications.

The Developer's Edge edited by Darryl Gove
The Developer's Edge focuses on articles on native programming language issues, performance and improving performance, specific features of the x86 and SPARC processors, and tools that are available in the Solaris OS.