View Source

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)
*** {{-xregs=no%frameptr}} (Sun Studio compilers)
* Data collection: Instead of running
{panel} {{% *mpirun -np 4 ./a.out*}} {panel}
run
{panel} {{% *+collect+ +\-M CT8.2+ mpirun -np 4 +\-\-+ ./a.out*}} {panel}
where:
** {{collect}}: collects performance data for use with Analyzer
** {{-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!|

The individuals who post here are part of the extended Sun Microsystems community and they might not be employed or in any way formally affiliated with Sun Microsystems. The opinions expressed here are their own, are not necessarily reviewed in advance by anyone but the individual authors, and neither Sun nor any other party necessarily agrees with them.

Copyright 1994-2009 Sun Microsystems, Inc.
Powered by Atlassian Confluence
Sun Guidelines on Public Discourse Privacy Policy Terms of Use Trademarks Site Map Employment Investor Relations Contact