The Intel® Trace Analyzer and Collector for Linux* and Windows* is a low-overhead scalable event-tracing library with graphical analysis that reduces the time it takes an application developer to enable maximum performance of cluster applications. This package is for users who developer on and build for Intel® 64 architectures on Linux* and Windows*, as well as customers running on Intel® Xeon Phi™. The package also includes an option download on OS X* for analysis only. You must have a valid license to download, install, and use this product.
The first step in analyzing a hybrid MPI/OpenMP* application is getting an overview of the application performance. There is a tool called MPI Performance Snapshot (MPS) that can provide the general performance information about your application. This includes MPI and OpenMP time and load balance information, information about memory and disk usage, most utilized MPI operations, and more.
There are three key reasons for an application to be MPI-bound:
High wait times inside the MPI library. This occurs when a process waits for the data from other processes. This case is characterized with high values of MPI Imbalance indicator.
Poor or incorrectly set optimization settings of the library.
To improve performance of the heart_demo application, it is necessary to change the communication pattern.
Use Intel® VTune™ Amplifier XE to understand why the computation time of the 2/64 combination is worse than the 32/4 combination even though the elapsed time is much less. A lower elapsed time for 32/4 is not possible due to the overhead of MPI deployments. As a result, it is better to focus on improving the computation time for the 2/64 combination instead.
To analyze the application performance with VTune Amplifier:
After updating the vector instruction set, collect performance data again with Intel VTune Amplifier to find additional optimization opportunities.
You have completed the Analyzing OpenMP* and MPI Applications tutorial with MPI Performance Snapshot, Intel® Trace Analyzer and Collector, and Intel® VTune™ Amplifier XE. Here are some important things to remember when working with your own hybrid application:
Baseline: A performance metric used as a basis for comparison of the application versions before and after optimization. Baseline should be measurable and reproducible.
Computation Time: The time your application ran without any additional overhead (initialization time, finalization time, etc.). Computation time is included in Elapsed Time.
Before you start analyzing the performance of the target application, do the following:
Intel® Trace Analyzer and Collector
MPI Performance Snapshot
Intel® VTune™ Amplifier XE for Linux* OS
Discover how to use Intel® Parallel Studio to tune hybrid applications by reviewing MPI utilization inefficiencies and balancing thread load levels.