Part 3: Expressing Parallelism with Vectors


Episode 3 of the “Hands-On Workshop (HOW) series on parallel programming and optimization with Intel® architectures” introduces data parallelism and automatic vectorization.

Discussed topics include:

• The concept of SIMD operations
• Using intrinsics to vectorize code
• Automatic vectorization with Intel compilers for loops
• Expressions with array notations
• SIMD-enabled functions

The video also touches on assumed vector dependence, and cases where the programmer must eliminate the compiler's assumption of vector dependence.

The hands-on part focuses on using the Intel compiler to perform automatic vectorization, diagnose its success, and making automatic vectorization happen when the compiler does not see opportunities for data parallelism.


Product and Performance Information


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 reserved 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