Intel® Performance Analysis Tools and Libraries

Intel Corporation offers a variety of performance analysis tools and libraries that can help you optimize your application performance.

Performance Analysis Tools

These performance tools can help you analyze your application, find problem areas, and develop efficient programs. In some cases, these tools are critical to the optimization process.

Tool

Platform

Description

Intel® VTune™ Performance Analyzer

Linux*, Windows*

This is a recommended tool for many optimizations. The VTune™ Performance Analyzer collects, analyzes, and provides Intel architecture-specific software performance data from the system-wide view down to a specific module, function, and instruction in your code.

The compiler, in conjunction with this tool, can use samples of events monitored by the Performance Monitoring Unit (PMU) and create a hardware profiling data to further enhance optimizations for some programs.

Start with the time-based and event-based sampling functionality of the VTune™ Performance Analyzer. Time-based sampling identifies the sections of code that use the most processor time. Event-based sampling identifies microarchitecture bottlenecks such as cache misses and mispredicted branches. Clock ticks and instruction count are good counters to use initially to identify specific functions of interest for tuning.

Once you have identified specific functions through sampling, use call-graph analysis to provide thread-specific reports. Call-graph analysis returns the following information about the functions:

  • Number of times each function was called

  • Location from which each function was called

  • Total processor time spent executing each function

You can also use the Counter monitor (which is equivalent to Microsoft* Perfmon*) to provide real-time performance data based on more than 200 possible operating system counters, or you can create custom counters created for specific environments and tasks.

For more product information, see http://www.intel.com/software/products/vtune/.

Intel® Threading Analysis Tools

Linux, Windows

Intel® Threading Analysis Tools consist of the Intel® Thread Checker and the Intel® Thread Profiler.

The Intel® Thread Checker can help identify shared and private variable conflicts, and can isolate threading bugs to the source code line where the bug occurs.

The Intel® Thread Profiler can show the critical path of an application as it moves from thread to thread, and identify synchronization issues and excessive blocking time that cause delays for Win32*, POSIX* threaded, and OpenMP* code.

For more product information, see http://www.intel.com/software/products/threading/.

Intel® Debugger (IDB)

Linux, Mac OS*, Windows

The Intel® Debugger is a full-featured symbolic source code debugger with a command-line interface and a basic graphical user interface.

Use this tool to make your applications run more efficiently and to locate programming errors in your code.

The Intel® Debugger comes with the Intel® Compilers. For general information, see the release notes that ship with the Intel® Debugger.

Performance Libraries

These performance libraries can decrease development time and help to increase application performance.

Library

Platform

Description

Intel® Threading Building Blocks

Linux, Mac OS, Windows

Intel® Threading Building Blocks (TBB) is a C++ runtime library that simplifies threading for performance. The library provides parallel algorithms and concurrent data structures that eliminates much of the work associated with threading implementation.

Intel® Integrated Performance Primitives (Intel® IPP)

Linux, Mac OS, Windows

Intel® Integrated Performance Primitives (IPP) is a software library of performance-optimized functions for digital media and data processing applications. Intel® IPP functions support multi-core processors in a thread-safe manner.

Intel® Math Kernel Library (Intel® MKL)

Linux, Mac OS, Windows

Intel® Math Kernel Library (Intel® MKL) offers highly optimized, thread-safe math routines for science, engineering, and financial applications that require maximum performance. Intel® MKL is optimized for Itanium® 2, Intel® Xeon®, and Intel® Pentium® 4 processor-based systems.

For more product information about the performance libraries, see http://www.intel.com/software/products/perflib/.