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.