Intel® Advisor Tutorials

Published on August 25 , 2015

Intel® Advisor provides two design tools to help ensure your Fortran, C and C++ native/managed applications realize full performance potential on modern processors, such as Intel® Xeon Phi™ processors:

  • Threading Advisor is a threading design and prototyping tool that lets you analyze, design, tune, and check threading design options without disrupting your normal development.
  • Vectorization Advisor is a vectorization design tool that lets you identify loops that will benefit most from vectorization, identify what is blocking vectorization, forecast the benefit of alternative data reorganizations, and increase the confidence that vectorization is safe.
Learn To Do This Take This Tutorial

Use the Automated Roofline Chart to Make Optimization Decisions

Use the Vectorization Advisor Roofline chart to answer the following questions:

  • What is the maximum achievable performance with your current hardware resources?
  • Does your application work optimally on current hardware resources?
  • If not, what are the best candidates for optimization?
  • Is memory bandwidth or compute capacity limiting performance for each optimization candidate?

C++ /Windows* OS

Sample code: roofline_demo_samples

Duration: 20 minutes

Add Efficient SIMD Parallelism to Code Using the Vectorization Advisor

Use the Vectorization Advisor to:

  • Identify loops that will benefit most from vectorization.
  • Identify what is blocking effective vectorization.
  • Increase the confidence that vectorization is safe.
  • Explore the benefit of alternative data reorganizations.

C++ /Windows* OS

C++ /Linux* OS

Sample code: vec_samples

Duration: 20 minutes

Find Where to Add Parallelism to Code Using the Threading Advisor

Demonstrates an end-to-end workflow you can ultimately apply to your own applications:
  1. Survey the target executable to locate the loops and functions where your application spends the most time.
  2. In the target sources, add Intel Advisor annotations to mark possible parallel tasks and their enclosing parallel sites.
  3. Check Suitability to predict the maximum parallel performance speedup of the target based on these annotations.
  4. Check Dependencies to predict parallel data sharing problems in the target based on these annotations.
  5. If the predicted maximum speedup benefit is worth the effort to fix the predicted parallel data sharing problems, fix the problems.
  6. Recheck Suitability to see how your fixes impact the predicted maximum speedup.
  7. If the predicted maximum speedup benefit is still worth the effort to add parallelism to the target, replace the annotations with parallel framework code that enables parallel execution.

C++/Windows* OS

C++/Linux* OS

Sample code: nqueens_Advisor

Duration: 20 minutes

 

1

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserverd for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804