Vectorization, the Other Parallelism
Moore's Law correctly predicted that processor transistor density would increase year after year. All those extra transistors have been used to make powerful hardware capabilities like multiple cores and hardware extensions that improve performance. Intel processors have extensions that support SIMD (single instruction, multiple data) parallelism with Intel® SSE and Intel® AVX(2). These instructions operate on a vector of data in parallel. The vector width, and therefore the number of elements that can be accessed in parallel, continues to expand as new processor technologies are introduced. Applications need to be vectorized to take advantage of SIMD instructions that utilize the expanded vector width.
There are some pretty easy ways to vectorize your code like autovectorization. This requires no changes to code. Next are using libraries that utilize both threading and vectorization to improve performance. For some applications, more advanced techniques may be needed to provide information to the compiler, including using special build logs and features such as Intel® Cilk™ Plus.
A great place to start is by downloading the Vectorization CodeBook. You will find simple, yet powerful vectorization techniques that can be used by just about any application developer using Intel® Compilers and libraries. If you came from the Vectorization CodeBook, explore additional topics included on the right.
Vectorization Toolkit - This toolkit outlines 6 Steps to Increase Performance Through Vectorization in Your Application.
Intel® C++ Composer XE Getting Started Tutorials
Intel® Fortran Composer XE Getting Started Tutorials
Intel Software Product Tutorials, A complete listing of getting started tutorials and show-me videos for many Intel development products.
Intel Learning Lab, Repository of learning materials, videos, guides filterable by expertise, product, operating system and more.
An Introduction to Vectorization with the Intel® C++ Compiler
An Introduction to Vectorization with the Intel® Fortran Compiler