Intel® Cilk™ Plus has been deprecated in the Intel® C++ Compiler 18.0. Prefer to use OpenMP-based syntax for offloading to the processor graphics. For more information see Migrate Your Application to use OpenMP* or Intel® Threading Building Blocks (Intel® TBB) Instead of Intel® Cilk™ Plus. The programs listed on "All Samples and Downloads" are being ported to use OpenMP & Intel TBB and will be updated when available.
Intel® C++ Compiler is an industry-leading C/C++ Compiler, including optimization features like auto-vectorization, OpenMP*, and Intel® Cilk™ Plus explicit vector & task programming capabilities; plus the highly optimized performance libraries.
Why is explicit vector & task programming important? Because the core counts & vector widths are increasing with new generations of processors and extensions to languages are needed to give best performance on new architectures. Modern programming languages such as C/C++ and Fortran were developed with serial semantics designed in. In some cases, a compiler may be able to identify auto-vectorization or auto-parallelization opportunities even within the semantics constraints of the programming language. But in a larger body of applications, auto-vectorization & auto-parallelization of a given loop is limited by a host of reasons. The reasons come from presence of conditionals, presence of user defined functions, assumed dependencies among data elements, and other reasons. Explicit vector & task programming arm the developers with the syntax they need to express the underlying data parallel potential in a piece of code.
We have created a list of samples demonstrating those features in detail, showing how to apply explicit vectorization and parallelization constructs in some popular algorithms and commonly used open source applications.
By downloading or copying all or any part of the sample source code, you agree to the terms of the Intel® Sample Source Code License Agreement.