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® and Intel® Xeon Phi™ processors.
- Vectorization Advisor is a vectorization analysis tool that lets you identify loops that will benefit most from vectorization, identify what is blocking effective vectorization, explore the benefit of alternative data reorganizations, and increase the confidence that vectorization is safe.
- 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.
One of the key Vectorization Advisor features is GUI-embedded advice on how to fix vectorization issues specific to your code. This page augments that GUI-embedded advice with links to web-based vectorization resources.
Getting Started With Intel® Advisor
Use the following resources to start taking advantage of the power and flexibility of the Intel Advisor:
Recommendation: Follow these SIMD Parallelism workflows (usage scenarios) to maximize your productivity as quickly as possible. (White shapes represent optional workflow steps.)
Intel Compiler Resources
The Intel Advisor ships with C++ and Fortran mini-guides of vectorization-related Intel compiler options and directives. These mini-guides are composed of excerpted pages from the full Intel compiler guides. The Vectorization Advisor requires the Intel Compiler version 15.0 or later to collect a full set of analysis data, including compiler diagnostics about vectorization constraints. The full compiler guides and vectorization diagnostics can be found below:
Compiler Guides & References
- Intel C/C++ Compiler: 17.0 ▪ 18.0 │ Intel Fortran Compiler: 17.0 ▪ 18.0
- Quick Reference Guide to Optimization with Intel C++ and Fortran Compilers v16 [PDF]
NOTE: A subset of metrics is available for binaries built with the GCC* or Microsoft* compiler.
The following resources are helpful if you are using the roofline analysis to visualize actual performance against hardware-imposed performance ceilings, as well as determine the main limiting factor (memory bandwidth or compute capacity), thereby providing an ideal roadmap of potential optimization steps.
- Roofline Resources
- Intel Advisor Roofline
- Intel® Advisor Tutorial: Use Automated Roofline Chart to Make Optimization Decisions
- An Introduction to the Roofline Feature in Intel® Advisor 2017 [video]
- Frequently Asked Questions about the Intel® Advisor Roofline Analysis Feature
- Roofline with Callstacks
- Selftime-based FLOPS Computing
- Cache-aware Roofline model: Upgrading the loft [PDF]
- Roofline: An Insightful Visual Performance Model for Floating-Point Programs and Multicore Architectures [PDF]
OpenMP* and MPI Resources
The following resources are helpful if you are using the OpenMP* parallel framework or MPI.
- OpenMP* and MPI Resources
Consider these resources if case studies interest you.
- Case Studies
- 3D Finite Differences on Multi-core Processors
- Analyzing GTC-P APEX code using Intel® Advisor on an Intel® Xeon Phi™ processor
- Eight Optimizations for 3-Dimensional Finite Difference (3DFD) Code with an Isotropic (ISO)
- Particle-in-cell Plasma Simulation Using Supercomputers Enhances Computational Physics
- More Efficient Numerical Simulation [PDF]
- Case Study: More Efficient Numerical Simulation in Astrophysics
- Roofline Model Boosts Manycore Code Optimization Efforts
- Cache-Aware Roofline Model in Intel® Advisor [PDF, see page 33]
- Vectorization Becomes Important - Again
The Intel® Developer Zone offers a wealth of vectorization resources. Many Advisor users find the following pages useful, either as context-rich repositories of links to resources or how-to guides.
- Link List Resources
These resources contain both information about vectorization and many links to appropriate additional resources. Note that some of these emphasize the vectorization capabilities of other Intel software development tools such as the compiler optimization reports and Intel® VTune™ Amplifier analyses; despite the different focus, they contain useful nuggets of vectorization information that apply across the board.
Also note that many resources are written to support the current Intel compiler version plus two previous versions. Much of the content in compiler resources written for a previous Intel compiler version still applies to the current Intel compiler version; in most cases, version differences are explained.
- Explicit Vector Programming - Best Known Methods
- Intel Vectorization Tools
- Programming and Compiling for Intel® Many Integrated Core Architecture
- Vectorization Essentials for Intel® Many Integrated Core Architecture
- How-To Resources
The many miscellaneous articles and resources for vectorization available on the Intel Developer Zone are gathered here for your convenience.
- Common Vectorization Tips
- Compiling for the Intel® Xeon Phi™ processor x200 and the Intel® AVX-512 ISA
- Consistency of Floating-Point Results using the Intel® Compiler
- Data Alignment to Assist Vectorization
- Differences in Floating-Point Arithmetic Between Intel® Xeon® Processors and the Intel® Xeon Phi™ Coprocessor
- Explicit Vector Programming in Fortran
- Future-Proof Your Application's Performance With Vectorization/Technical Presentation Questions and Answers
- Getting Started with Intel Compiler Pragmas and Directives
- Intel Intrinsics Guide
- Outer Loop Vectorization
- Program Optimization through Loop Vectorization
- Requirements for Vectorizing Loops with #pragma SIMD
- Utilizing Full Vectors and Use of Option -qopt-assume-safe-padding
- Vectorization Codebook [PDF]
Intel, the Intel logo, Intel Xeon Phi, VTune, and Xeon are trademarks of Intel Corporation in the U.S. and/or other countries.
* Other names and brands may be claimed as the property of others.
Copyright 2015-2018 Intel Corporation.
This software and the related documents are Intel copyrighted materials, and your use of them is governed by the express license under which they were provided to you (License). Unless the License provides otherwise, you may not use, modify, copy, publish, distribute, disclose or transmit this software or the related documents without Intel's prior written permission.
This software and the related documents are provided as is, with no express or implied warranties, other than those that are expressly stated in the License.