... h1. Sun Studio Performance Analyzer and MPI
h4. The Sun Studio Performance Analyzer
The [Sun Studio Performance Analyzer|http://developers.sun.com/sunstudio/overview/topics/analyzer_index.html] integrates many forms of performance analysis -- such as attributing time to user source code, identifying important callers and callees of functions, tracing memory allocations and detecting leaks, monitoring hardware counters, etc. -- with MPI performance analysis.
h4. MPI features
For full functionality and latest features, be sure to upgrade to the latest version. Sun Studio is available for [free download|http://developers.sun.com/sunstudio/downloads] on Linux and Solaris systems.
* timeline view of execution and MPI message lines * message and byte counts * attribution to user functions that called MPI * easy-to-use interface to construct "arbitrary" statistical charts * characterization of time spent in MPI as "wait" or "work" (only with Sun HPC ClusterTools MPI) * ability to hide or expose details of the underlying MPI implementation * filtering to examine subsets of MPI trace data
h4. Overview of usage
* Program compilation: No special compilation is needed. Additional functionality is available, however, if you compile with: ** symbolic information: Use {{-g}} to include symbolic information. This allows more useful analysis, such as the attribution of performance metrics to individual source lines. ** preserving the frame pointer: On x86 systems, if you see too many {{<static>}} or {{<Unknown>}} functions during analysis, instruct the compiler to use the frame pointer register for monitoring the stack: *** {{-fno-omit-frame-pointer}} (GCC compilers) |
... ** {{-M}}: turns on MPI tracing; legal switch values include {{CT8.2}}, {{CT8.1}}, {{CT8}}, {{CT7}}, {{CT7.1}}, {{OPENMPI}}, {{MPICH2}}, {{MVAPICH2}}, and {{off}} ** {{--}}: separates the MPI launch command and its arguments from the name of the MPI executable and its arguments * Analysis: Run the Analyzer on your newly created performance data -- e.g., {panel} {{% *analyzer test.1.er*}} {panel} Make sure you have Java 2 Software Development Kit (JDK) 6, Update 3 or newer in your execution path.
h4. Links
{panel} * Sun Studio [home page|http://developers.sun.com/sunstudio/index.jsp] and [download|http://developers.sun.com/sunstudio/downloads] * [Sun Studio Performance Analyzer|http://developers.sun.com/sunstudio/overview/topics/analyzer_index.html] * [screen cast|http://webcast-west.sun.com/interactive/09D02152/index.html] * [technical article|http://developers.sun.com/sunstudio/documentation/techart/mpi_apps/] * [tutorial|http://developers.sun.com/sunstudio/documentation/tutorials/studio12.1_mpi/] * [case study|http://wikis.sun.com/display/MPIAnalyzer/Memory+Profiling+with+MPI+Analyzer] of memory profiling * {{man}} pages for [collect|http://developers.sun.com/sunstudio/documentation/ss12u1/mr/man/man1/collect.1.html], [analyzer|http://developers.sun.com/sunstudio/documentation/ss12u1/mr/man/man1/analyzer.1.html], and the [er_print|http://developers.sun.com/sunstudio/documentation/ss12u1/mr/man/man1/er_print.1.html] command-line tool * details on [chart controls|http://wikis.sun.com/display/MPIAnalyzer/MPI+Chart+Controls+and+Attributes] {panel}
h4. Screenshots
For more information on these sample screenshots, see the [technical article|http://developers.sun.com/sunstudio/documentation/techart/mpi_apps/]. |Timeline\\displays|!http://developers.sun.com/sunstudio/documentation/techart/mpi_apps/images/timeline_only_mod_zoomout.gif!|!http://developers.sun.com/sunstudio/documentation/techart/mpi_apps/images/timeline2_funcsel.gif!| |Statistical\\charts|!http://developers.sun.com/sunstudio/documentation/techart/mpi_apps/images/base_ftns_hist.gif!|!http://developers.sun.com/sunstudio/documentation/techart/mpi_apps/images/msgs_bytes.gif!| |Source \\ code \\ analysis|!http://developers.sun.com/sunstudio/documentation/techart/mpi_apps/images/functions_y_solve.gif!|!http://developers.sun.com/sunstudio/documentation/techart/mpi_apps/images/source_y_solve.gif!| |