Intel® C and C++ Compilers

Leadership application performance

  • Rich set of components to efficiently implement higher-level, task-based parallelism
  • Future-proof applications to tap multicore and many-core power
  • Compatible with multiple compilers and portable to various operating systems

Performance without compromise

  • Industry leading performance on Intel and compatible processors.
  • Extensive optimizations for the latest Intel processors, including Intel® Xeon Phi™ coprocessor
  • Scale forward with support multi-core, manycore and multiprocessor systems with OpenMP, automatic parallelism, and Intel Xeon Phi coprocessor support
  • Patented automatic CPU dispatch feature gets you code optimized for the current running processor runs code optimized for specified processors identified at application runtime.
  • Intel® Performance Guide provides suggestions for improving performance in your Windows* applications.

Broad support for current and previous C and C++ standards, plus popular extensions

  • Language support with full C++11 and most C99 support. For details on C++11, see http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler
  • Extensive OpenMP 4.0* support

Faster, more scalable applications with advanced parallel models and libraries

Intel provides a variety of scalable, easy to use parallel models. These highly abstracted models and libraries simplify adding both task and vector parallelism. The end result is faster, more scalable applications running on multi-core and manycore architectures.

Intel® Cilk™ Plus (included with Intel C++ compiler)

  • Simplifies adding parallelism for performance with only three keywords
  • Scale for the future with runtime system operates smoothly on systems with hundreds of cores.
  • Vectorized and threaded for highest performance on all Intel and compatible processors
  • Click here for sample code, contributed libraries, open specifications and other information from the Cilk Plus community.
  • Included with Intel C++ compiler and available in GCC 4.9 development branch (with –fcilkplus and the caveat that Cilk_for is not supported yet in a Clang*/LLVM* project at http://cilkplus.github.io/.
  • More information

OpenMP 4.0 (included with Intel C++ compiler)

  • Support for most of the new features in the OpenMP* 4.0 API Specification (user-defined reductions not yet supported)
  • Support for C, C++, and Fortran OpenMP programs on Windows*, Linux*, and OS X*
  • Complete support for industry-standard OpenMP pragmas and directives in the OpenMP 3.1 API Specification
  • Intel-specific extensions to optimize performance and verify intended functionality
  • Intel compiler OpenMP libraries are object-level compatible with Microsoft Visual C++* on Windows and GCC on Linux*

Intel® Math Kernel Library

  • Vectorized and threaded for highest performance using de facto standard APIs for simple code integration
  • C, C++ and Fortran compiler-compatible with royalty-free licensing for low cost deployment
  • More information

Intel® Integrated Performance Primitives

  • Performance: Pre-optimized building blocks for compute-intensive tasks
  • A consistent set of APIs that support multiple operating systems and architectures
    • Windows*, Linux*, Android*, and OS X*
    • Intel® Quark™, Intel® Atom™, Intel® Core™, Intel® Xeon®, and Intel® Xeon Phi™ processors
  • More information

Intel® Threading Building Blocks

  • Rich set of components to efficiently implement higher-level, task-based parallelism
  • Compatible with multiple compilers and portable to various operating systems
  • More information

Intel® Media SDK 2014 for Clients

  • A cross-platform API for developing consumer and professional media applications.
  • Intel® Quick Sync Video: Hardware-accelerated video encoding, decoding, and transcoding.
  • Development Efficiency: Code once now and see it work on tomorrow's platforms.
  • More information

A drop-in addition for C and C++ development

  • Windows*
    • Develop, build, debug and run from the familiar Visual Studio IDE
    • Works with Microsoft Visual Studio* 2008, 2010, 2012 and 2013
    • Source and binary compatible with Visual C++*
  • Linux*
    • Develop, build, debug and run using Eclipse* IDE interface or command line
    • Source and binary compatible with GCC
  • OS X*
    • Develop, build, debug and run from the familiar Xcode* IDE
    • Works with Xcode 4.6, 5.0 and 5.1
    • Source and binary compatible with LLVM-GCC and Clang* tool chains
  • 32-bit and 64-bit development included

  1. Project and source in Visual Studio
  2. C/C++ aware text editor
  3. Debug C/C++ code
  4. Call Stack information
  5. Set breakpoints at certain source lines on IDE.

Outstanding support

One year of support included with purchase – gives you access to all product updates and new versions released in the support period plus access to Intel Premier Support. There's a very active user forum for help from experienced users and Intel engineers

  • Videos on Getting Started with Intel® C++ Compiler
  • Vectorization Essentials
  • Performance Essentials with OpenMP 4.0 Vectorization
  • View slides

Register for future Webinars


Previously recorded Webinars:

  • Update Now: What’s New in Intel® Compilers and Libraries
  • Performance essentials using OpenMP* 4.0 vectorization with C/C++
  • Intel® Cilk™ Plus Array Notation - Technology and Case Study Beta
  • OpenMP 4.0 for SIMD and Affinity Features with Intel® Xeon® Processors and Intel® Xeon Phi™ Coprocessor
  • Introduction to Vectorization using Intel® Cilk™ Plus Extensions
  • Optimizing and Compilation for Intel® Xeon Phi™ Coprocessor

More Tech Articles

Game Companies Speed Up Development with Intel® Sample Code
By John Hartwig (Intel)Posted 04/27/20150
Whether you are an indie game developer or a seasoned professional, you are likely to find an interesting code sample on Intel Developer Zone's game dev section. Read here to learn how Intel engineers worked with Blizzard and Codemasters to optimze our Adaptive Volumetric Shadow Maps (AVSM), Con...
Intel® Memory Protection Extensions Enabling Guide
By Sundaram Ramakesavan (Intel)Posted 04/16/20150
Abstract: This document describes Intel® Memory Protection Extensions (Intel® MPX), its motivation, and programming model. It also describes the enabling requirements and the current status of enabling in the supported OSs: Linux* and Windows* and compilers: Intel® C++ Compiler, GCC, and Visual S...
Intel® Parallel Studio XE 2015 Professional Edition Evaluation on Linux*
By adminPosted 04/13/20150
This page steps you through a typical code development methodology. Using samples/videos, it demonstrates how to use the main Intel® Parallel Studio components in each step of the process. You can apply the principles learned to your own application: Identify the performance hotspots in your app...
Intel(R) System Studio Developer Story : How to configure, build and profile the Linux Kernel of Android by using the VTune
By JONG IL P. (Intel)Posted 12/23/20140
Intel(R) System Studio Developer Story: How to configure, build, debug and optimize key parts of your mobile software stack for Android* 1. Set-up and configure a development environment. (1) The target HW environment    In this article, a Minnow board MAX is used for a HW platform. The Minnow...
Subscribe to Intel Developer Zone Articles

Supplemental Documentation

Intel® MKL Sparse BLAS Overview
By Naveen Gv (Intel)Posted 06/25/20120
Sparse BLAS routines can be useful to implement iterative methods for solving large sparse systems of equations or eigenvalue problems
Intel Guide for Developing Multithreaded Applications
By adminPosted 01/16/201224
The Intel® Guide for Developing Multithreaded Applications covers topics ranging from general advice applicable to any multithreading method to usage guidelines for Intel® software products to API-specific issues.
Elemental functions: Writing data parallel code in C/C++ using Intel® Cilk™ Plus
By Robert Geva (Intel)Posted 01/24/20116
Intel® Cilk™ Plus provides simple to use language extensions to express data and task-parallelism to the C and C++ language. This article describes one of these programming constructs: “elemental functions”.
Subscribe to Intel Developer Zone Articles

You can reply to any of the forum topics below by clicking on the title. Please do not include private information such as your email address or product serial number in your posts. If you need to share private information with an Intel employee, they can start a private thread for you.

New topic    Search within this forum     Subscribe to this forum


Intel® Parallel Studio XE 2016 Beta program has begun
By Jennifer J. (Intel)3
Hello everyone, The Intel® Parallel Studio XE 2016 Beta program has just begun. We welcome you to participate. For the new features and improvements, you can find them under "Change History" section in the Intel C++ Compiler Release Notes: Intel C++ Compiler 16.0 beta for Windows: https://software.intel.com/en-us/articles/intel-c-compiler-160-for-windows-release-notes Intel C++ Compiler 16.0 beta for OS X*: https://software.intel.com/en-us/articles/intel-c-compiler-160-for-os-x-release-notes Intel C++ Compiler 16.0 beta for Linux*: https://software.intel.com/en-us/articles/intel-c-compiler-160-for-linux-release-notes   For more details and information about this beta program, check out the Intel® Parallel Studio XE 2016 Beta page, which includes additional information in the FAQ and What’s New documents. As a Beta tester, you’ll be expected to provide feedback to our development teams via Beta surveys and submissions at Intel® Premier Support.  
Free webinar April 7 2015 9am PST "Further Vectorization Features of the Intel Compiler"
By Jennifer J. (Intel)0
There is a free webinar “Further Vectorization Features of the Intel Compiler” coming next Tuesday talking specifically about getting more vectorizations from Intel Compilers. But you would benefit it more if you've watched/listened to the previous webinar Performance essentials using OpenMP* 4.0 vectorization with C/C++. Please register at Intel® Software Tools Technical Webinar Series  Detail info on the webinar: Further Vectorization Features of the Intel Compiler The vectorization features of the Intel compiler continue to get more powerful with each succeeding version. In this webinar, we will look beyond the vectorization of simple loops over intrinsic data types, to examples involving STL (Standard Template Library) vectors; multi-dimensional arrays, including data alignment; explicit outer loop vectorization, using the SIMD feature of OpenMP 4.0; and, if time permits, indirect addressing. Code samples will include C, C++ and Fortran and will be available for subsequent dow...
OS X 10.9 Xcode 5 error can't open "stdlib.h" OR ld: library not found for -lcrt1.10.6.o
By Ronald W Green (Intel)0
Environment:  OS X 10.9 (Mavericks) and Xcode 5.0 Command line compilations/links fail with either: "catastrophic error: cannot open source file "stdlib.h" OR with "ld: library not found for -lcrt1.10.6.o" Affected compiler:  Intel Composer XE 2013 Update 1 Root cause:  Xcode 5.0 installation does not install all command line tools (include files, libraries, SDKs) need for the compiler to link user applications.  FIX: Install the Xcode 5.0 "Command Line Tools".  Follow this Knowledge Base article for installation of this package:  http://software.intel.com/en-us/articles/installing-intel-compilers-for-os-x-pre-requisite-xcode-command-line-tools
ld: cannot find -lm when building with -static or -fast
By Ronald W Green (Intel)0
RHEL 6.x, FC14, FC13, FC12, SL6.x, CentOS 6, etc. and possibly other recent distributions: error when using -static or -fast: ld: cannot find -lm See this article: http://software.intel.com/en-us/articles/error-ld-cannot-find-lm/
IDB use under Mac OS* X 10.7 Lion
By Ronald W Green (Intel)0
In order to debug applications built by the Intel Composer XE 2011 ( Updates 6, 7, 8, and possible future updates ) under Mac OS* X 10.7 Lion, the following options are required: -g -save-temps -fpic -Wl,-no_pie Further information can be found here: http://software.intel.com/en-us/articles/using-the-idb-debugger-under-mac-os-x-107-lion/This does not affect users running Mac OS* X 10.6 Snow Leopard or Mac OS* X 10.5 Leopard.
VADDSSL instruction?
By unrue2
Dear Intel developers, I'm using intel 15 on E5-2670 processor. Analyzing my code by using Vtune, in a particolar line when I unpack a m128 type in order to sum in a single floating point each elements like horizontal sum, like this:   _mm_store_ps(denom_arr_tmp, denom_tmp); semblance[m_local] += denom_arr_tmp[0]+denom_arr_tmp[1]+denom_arr_tmp[2]+denom_arr_tmp[3];  The assembly generated is: vunpckhps %xmm2, %xmm2, %xmm3 movq -0x80(%rbp), %rax vaddssl -0x9c(%rbp), %xmm2, %xmm4 vaddss %xmm3, %xmm4, %xmm5 vaddssl -0x94(%rbp), %xmm5, %xmm6 vaddssl (%rax,%r14,4), %xmm6, %xmm7 vmovssl %xmm7, (%rax,%r14,4)   My question is: what is VADDSSL instruction? What's the difference with VADDSS? How I can optimize that piece of code? Actually is a bottleneck. Thanks.  
Initialized Lambda Capture
By Dix Lorenz0
According to https://software.intel.com/en-us/articles/c14-features-supported-by-inte... ICC15 should support initialized lambda captures. Yet code like this         *this = make([f, theLocalData = std::move(theLocalData)] { fails to compile: error: expected a "]" 1>        *this = make([f, theLocalData = std::move(theLocalData)] { 1>                                      ^   clang compiles it, so I assume I am using that feature correctly: I didn't find any compiler option to enable C++14, it is set to use C++11 features though. Bug in the compiler or am I using it wrong?   (Sorry for the formatting, but this editor is totally messed up on Safari)
icc -mmic: Error: `xxx' is not supported on `k1om'
By sun l.1
I compile a app with "icc -mmic", and it needs openssl library. So I compile ssl with "icc -mmic", then faild. Maybe it's the problem with perl? I don't know how to do with it, any advise? Thanks! ------------------------------------- ...... icc -I. -I.. -I../include -mmic -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -c -o o_init.o o_init.c icc -I. -I.. -I../include -mmic -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -c -o fips_err.o fips_err.c /usr/bin/perl x86_64cpuid.pl x86_64cpuid.s icc -I. -I.. -I../include -mmic -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM...
Subscribe to Forums

You can reply to any of the forum topics below by clicking on the title. Please do not include private information such as your email address or product serial number in your posts. If you need to share private information with an Intel employee, they can start a private thread for you.

New topic    Search within this forum     Subscribe to this forum


A new version of CilkPlus/LLVM compiler is available!
By Andrew Tischenko (Intel)0
Hi All! We’re glad to inform you that a new version of CilkPlus LLVM-based compiler available now on Cilk Plus/LLVM. This version fully supports Intel® Cilk™ Plus Language Extension Specification Version 1.2, including C-Extended Array Notation missed in the previous version of the compiler. In addition, a lot of bugs were fixed, including variable length arrays support in _Cilk_spawn calls. We’re encouraging you to download the new compiler and to play with it. All your comments are welcome! Andrew V. Tischenko ================= Software Engineer Intel Compiler Team  
Cilk Plus for GCC 4.8
By Barry Tannenbaum (Intel)0
Binary versions of the GNU Compiler Collection (GCC) C and C++ 4.8 compilers with the cilkplus extension are now available from http://www.cilkplus.org/download#gcc-development-branch . The binaries support the x86-32 and x86-64 architectures on Ubuntu* Linux*. The source for these compilers is available at http://gcc.gnu.org/svn/gcc/branches/cilkplus-4_8-branch  . These compilers are provided as a convenience. This branch is under active development and should not be used for production code. The compilers are not guaranteed to be up-to-date or error-free. Questions, bug reports, or issues should be posted in this forum. Cilk Plus is also being integrated into the next version of the GCC C and C++ compilers.  Sources for that version are available at http://gcc.gnu.org/svn/gcc/branches/cilkplus .
Announcement: Version 1.2 of the Cilk Plus Language Specification released
By Pablo Halpern (Intel)0
We are pleased to announce an update to the Intel® Cilk™ Plus Language Specification.  This document describes the syntax and semantics of the Cilk™ Plus language constructs that were added to the C and C++ programming languages.  This version of the specification was relseased in September, 2013 and supersedes the 1.1 version of the same specification released in July, 2011.  This version adds no new features to the language extensions described in the V1.1 specification, but contains numerous corrections and clarifications.  A few obsolete constructs were removed.  It is recommended that implementors adding Cilk Plus extensions to their compilers base their changes on this document instead of the V1.1 document. The new spec is available on the Open Specifications download page on cilkplus.org.
Cilkpub: a library of community-contributed Cilk Plus code
By Jim Sukha (Intel)3
We are pleased to announce that Cilkpub, a library of community-contributed Cilk Plus code, is now available for download. Cilkpub is intended to be a public library of code contributed and maintained by the members of the Cilk Plus community. Version 1.02 has been posted to the community website and contains the following modules: DotMix DPRNG: a deterministic parallel random number generator for Cilk Plus, contributed by Tao B. Schardl and myself. Sort: a module containing parallel implementations of quicksort and sample sort, contributed by Arch Robison.   This code is derived from the sorts described in Structured Paralllel Programming. Cilkpub is distributed as a source code.  The DotMix and Sort modules are implemented using C++ templates, and consist of only header files. If you have your own Cilk Plus code that you would like to share with the world, please consider contributing your code!   The Cilkpub project is still in its early stages, and we hope to expand the librar...
Cilk Plus/LLVM available on Github
By Ben Langmuir (Intel)3
Hi all, I am pleased to announce that the source code for our in-progress implementation of the Intel Cilk Plus extensions in Clang/LLVM is now available on Github: http://cilkplus.github.com/ This is an early release, and is not yet feature-complete. Right now, only spawn and sync are supported, as well as anything that only requires the runtime library, such as hyperobjects. We will of course be adding the rest of the Intel Cilk Plus extensions over time, including cilk_for and the vectorization features. More information about the current status, including supported platforms and known issues is available at http://cilkplus.github.com/#status. We would love to hear your feedback (and bug reports!) – either on this forum, or via the github issue tracker https://github.com/cilkplus/clang/issues.  Ben
New Cilk Plus website - http://cilkplus.org/
By Bethany Dalby (Intel)1
Check out the new Intel® Cilk Plus™ website http://cilkplus.org/.  Learn about the latest product information, download tools and samples, submit contributions, and much more! If you have any comments or suggestions, we would love to hear them.
Intel Cilk Plus SDK - Cilkscreen and Cilkview for Intel Cilk Plus
By Barry Tannenbaum (Intel)6
The Intel Cilk Plus SDK (Software Development Kit) is now available as a WhatIf kit. It supplies the Cilkscreen race detection and Cilkview scalability tools for Intel Cilk Plus developers working on the Microsoft Windows* and Linux* operating systems. More information can be found at the Intel Cilk Plus Download page. Support for the Intel Cilk Plus SDK will be provided through the Intel Cilk Plus forum. Note: You must have SP1 or later of the Intel Parallel Composer 2011 or Intel C++ Composer XE 2011 products. - Barry
Cilkplus port to Raspberry Pi 2B
By Eric O.4
I compiled the new release of gcc-5.1 with the Cilkplus parallel processing extensions and runtime library for ARMv7 architecture on the Raspberry Pi 2B single board computer.  Two changes were needed. The first change corrects a typo in generic/cilk-abi-vla.c by changing the second to the last line of the file from vla_internal_heap_free(t, full_size); to vla_internal_heap_free(p, full_size); the second change was to generic/os-fence.c and ARM specific. Comment out the line COMMON_SYSDEP void __cilkrts_fence(void); ///< MFENCE instruction as // COMMON_SYSDEP void __cilkrts_fence(void); ///< MFENCE instruction and then add the define #define __cilkrts_fence() __asm__ volatile ("DSB") right above it.  I've been testing the results and getting reasonable parallel speedup using 4-cores on a number of algorithms.  My results are posted on the Raspberry Pi forum under the topic "Programming C/C++" in the thread "Cilkplus on RPi2B." It appears that cilk_spawn, cilk_sync and cilk_for...
Subscribe to Forums