Intel® Developer Zone:
Intel® Xeon Phi™ Coprocessor

Productivity via architecture innovation coupled with familiar software. Intel® Xeon Phi™ coprocessor:

  • Extends hardware support to higher degrees of parallelism with power savings
  • Uses familiar and standard programming models to preserve investments
  • Shares parallel programming with general purpose processor

New! Applications Catalog

See the growing list of available, downloadable or work-in-progress code that can be run or is actively being optimized to run on Intel® Xeon Phi™ Coprocessors.

View Now


Getting Started
Is Intel® Xeon Phi™ coprocessor right for you?
Where to Buy
Intel® Xeon Phi™ Coprocessor Architecture
Site maps: Administrators, Developers, Investigators
Guides & Manuals
Intel® Xeon Phi™ Coprocessor Developer’s Quick Start Guide
Intel® Xeon Phi™ Coprocessor Instruction Set Architecture Reference Manual
System Administration Guide

Parallel programming is part of the evolution to the future. Intel processors and coprocessors offer a converged method so you may use common programming models and tools.

  • Standards-driven parallel programming models that scale for today and tomorrow
  • Use established development workflows and code base to scale forward
  • Techniques benefit both processors and coprocessors thereby preserving past and future investments
Programming for Multicore and Many-core Products
Code recipes for Intel® Xeon Phi™ Coprocessor

Programming

Intel® Xeon Phi™ Coprocessor Software Developer’s Guide

Building Native Applications

Programming and Compiling

Cheatsheet: Directives and Functions

Math Kernel Library Automatic Offload

Using Intel® MPI

Using OpenMP* extensions

System V Application Binary Interface

Differences in Floating-point Arithmetic

Run to Run Reproducibility

Power Analysis and Configuration

Migrating Fortran projects

Debugging

Debugging on Linux*

Debugging on Windows*

Optimization

Optimization – Part 1: Essentials

Optimization – Part 2: Hardware Events

Performance Monitoring Units

Loop Optimization

Best Known Methods for Performance

Software Developer Workshop Videos

A technical guide to the software development environment for the Intel® Xeon Phi™ coprocessor

Name/DescriptionProgramming LanguageUser Experience Level

BeginningSlides_ExtractedCode.zip
Samples extracted from slides for the Intel® Xeon Phi™ coprocessor Beginning Workshop including Fortran translations.

C++, Fortran Beginner

BeginningLabs_FortranVersion.zip
Lab exercises for the Intel® Xeon Phi™ coprocessor Beginning Workshop – Fortran version.

Fortran Beginner

BeginningLabs_CVersion.zip
Lab exercises for the Intel® Xeon Phi™ coprocessor Beginning Workshop – C++ version.

C/C++ Beginner

Advanced Workshop Labs
Labs covering more advanced concepts, including Intel® MKL, Intel® MPI, Debugging, Memory optimization, Tuning, and Vectorization.

C/C++, Fortran Advanced

Importance of Vectorization (Fortran example)
To get good performance out of the Intel® Many Integrated Core architecture (Intel® MIC architecture) and systems including Intel® Xeon Phi™ coprocessors, applications need to take advantage of the 16-wide SIMD registers as well as the many cores.

Fortran Advanced

Many Faces of Parallelism
This lab contains a number of examples (Riemann Sums, SGEMM, Fibonacci, Qsort, Cholesky Decomposition, Algorithm, Mandelbrot Set) detailing steps from a serial problem to a parallel solution running on the Intel® Xeon Phi™ Coprocessor.

C/C++ Advanced

Intel® SDK for OpenCL* Applications XE Samples

OpenCL Beginner, Intermediate

iXPTC 2013 Financial Services conference 

C/C++ Beginner, Intermediate

SHOC MD Lab Exercises
Using a simple implementation of an nbody pairwise computation using the Lennard-Jones Potential from molecular dynamics as an example of porting and optimizing applications.

C/C++ Beginner, Intermediate

High Performance Parallelism Pearls: Multicore and Many-core Programming Approaches
by James Reinders and James Jeffers Publication Date: November 17, 2014 | ISBN-10: 0128021187 | ISBN-13: 978-0128021187


Structured Parallel Programming: Patterns for Efficient Computation
by Michael McCool, James Reinders and Arch Robison Publication Date: July 9, 2012 | ISBN-10: 0124159931 | ISBN-13: 978-0124159938


Intel® Xeon Phi™ Coprocessor High Performance Programming
by Jim Jeffers and James Reinders – Now available!


Parallel Programming and Optimization with Intel® Xeon Phi™ Coprocessors
by Colfax International


Intel® Xeon Phi™ Coprocessor Architecture and Tools - The Guide for Application Developers
by Reza Rahman


Optimizing HPC Applications with Intel Cluster Tools: Hunting Petaflops
by Alexander Supalov

This page contains a growing compendium of commonly accessible or downloadable code that can be run on Intel® Xeon Phi™ Coprocessors.

If you have completed an upstream promotion of a community code, please post a thread on the Intel® Many Integrated Core Architecture Forum to let us know, so that we can update this list.

Latest changes:

02/04/2015 -- Added recipe for Embree
01/22/2015 -- Added recipe for miniGhost
01/20/2015 -- Added recipe for The NCBI BLAST algorithm
10/14/2014 -- Added recipes for Black-Scholes-Merton Formula, HBM, Monte Carlo European Option with Pre-generated Random Numbers
09/18/2014 -- Added recipe for NWChem
09/05/2014 -- Updated recipe for LAMMPS* for Intel® Xeon Phi™ Coprocessor
08/23/2014 -- Added recipe for BWA*
08/21/2014 -- Added recipe for Amber 14
07/03/2014 -- Added recipe for NOAA NIM with Support for Intel® Xeon Phi™ Coprocessor
06/30/2014 -- Added recipe for Monte Carlo European Option Pricing with RNG Interface for Intel® Xeon Phi™ Coprocessor
06/23/2014 -- Added recipe for NAMD
06/04/2014 -- Added recipe for Quantum ESPRESSO* for Intel® Xeon Phi™ Coprocessor
05/22/2014 -- Added recipe for Mathworks* MATLAB
05/22/2014 -- Added recipe for GROMACS for Intel® Xeon Phi™ Coprocessor
05/15/2014 -- Added recipe for Binomial Options Pricing Model
04/14/2014 -- Added recipe for Hogbom Clean Benchmark
03/20/2014 -- Added recipe for running WRF with conus2.5km benchmark in Symmetric mode

Code (in Alphabetical order) Segment Where to download Install recipe (if needed)

Amber

Amber is the collective name for a suite of programs that allow users to carry out molecular dynamics simulations

Biomolecules Amber 14 Follow this recipe to build and run

Black-Scholes-Merton Formula on Intel® Xeon Phi™ Coprocessor

 

Financial Download source code Follow this recipe

BLAST

The NCBI BLAST algorithm, and the associated application suite, is used extensively in the field of Bioinformatics

Bioinformatics Download source code Follow this recipe

BOPM (Binomial Options Pricing Model)

BOPM is a generalized numerical method used to value options in the quantitative Financial Services industry

Financial Services BOPM Follow this recipe to build and run

BWA* ALN 0.5.10 for Intel® Xeon Phi™ Coprocessors

BWA* is a software package for mapping low-divergent sequences against a large reference genome.

Bioinformatics BWA* Follow this recipe to build and run

Embree

Embree is a collection of high-performance ray tracing kernels, that are optimized for photo-realistic rendering on the latest Intel® processors

Ray-tracing Source code download Follow this recipe

GEMM, STREAM, Linpack

GEMM and Linpack both exercise basic dense matrix operations targeting floating point performance on the coprocessor. STREAM is a test of memory bandwidth targeting GDDR memory performance.

Academic These benchmarks can be obtained when downloading the Intel® MPSS-- these are included in optionally installed performance packages that will put the benchmarks and related documentation into /opt/intel/mic/perf on the 2.x version of the MPSS or /usr/share/micperf if using an MPSS 3.1.* release

Intel® MPSS 2.1 users: Follow guidance from Chapter 5 of the Intel® MPSS Readme on installation and configuration.

Intel® MPSS 3.1 users: Follow guidance from Chapter 4 of the MPSS_Users_ Guide on installation and configuration

For STREAM, if you prefer to download source yourself, compilation and optimization recipe is here

GROMACS for Intel® Xeon Phi™ Coprocessor

GROMACS is a versatile package to perform molecular dynamics, using Newtonian equations of motion.

Chemical Simulations GROMACS Follow this recipe to build and run

GTC-P (Gyrokinetic Toroidal Code - Princeton)

The gyrokinetic toroidal code (GTC) is a massively parallel, particle-in-cell code for turbulence simulation in support of the burning plasma experiment , the crucial next step in the quest for fusion energy. This is a 2D domain decomposition version of the GTC global gyrokinetic PIC code for studying microturbulent core transport.

Academia Submit a request for the code here.

Follow instructions here to build and run

HBM for the Intel® Xeon Phi™ Coprocessor

 

Ocean Forecasting MoU email requests: Per Berg or Jacob Weismann Poulsen Follow this recipe

Hogbom Clean Benchmark

Benchmark that implements the kernel of the Hogbom Clean deconvolution algorithm. Part of the ASKAP benchmark package, used to benchmark platforms for the Australian SKA Pathfinder (ASKAP) Science Data Processor

Astronomy, Academic

GitHub

See this recipe for configuration and compilation

LAMMPS* for Intel® Xeon Phi™ Coprocessor

Large-scale Atomic/Molecular Massively Parallel Simulator (LAMMPS*) is a classical molecular dynamics code.

Molecular Dynamics LAMMPS Follow this recipe to build and run

LBS3D

Simulation tools for multiphase flows based on the free energy Lattice Boltzmann Method (LBM), important for Computational Fluid Dynamics. The code allows for the simulation of quasi-incompressible two-phase flows, and uses multiphase models that allow for large density ratios.

Manufacturing mplabs

Follow compilation instructions here

(Also reference whitepaper)

Mantevo MiniFE

Self-contained, stand-alone mini-application which encapsulates the most significant performance characteristics (generation, assembly, solution) of an implicit finite element method application in C++ code. The physical domain is a three-dimensional box modeled by hexahedral elements (sometimes called "brick" elements). The box is discretized as a structured grid but treated as unstructured. The domain is decomposed for parallel execution using recursive coordinate bisection (RCB).

Academic mantevo.org > Download

Follow guidance from this MiniFE Case Study to understand what flags/options to use to run MiniFE on host, coprocessor, or both

Mathworks* MATLAB*

Interactive software program that performs mathematical computations and visualization

Signal Processing and Communications, Digital Content Creation, Financial Services, Computational Biology mathworks.com

See This recipe on how to use via the Intel® Math Kernel Library Automatic Offload features

miniGhost

miniGhost is a Finite Difference mini-application which implements a difference stencil across a homogenous three dimensional domain.

Scientific Algorithms Download code

Follow this recipe

Monte Carlo European Option with Pre-generated Random Numbers

 

Financial Download source code Follow this recipe

Monte Carlo European Option Pricing with RNG Interface for Intel® Xeon Phi™ Coprocessor

Statistical sampling Download code

Follow this recipe to build and run

MPI-HMMER

A version of HMMER, a hidden Markov model for analyzing protein sequences. In this version, two routines, hmmsearch and hmmpfam have been modified to use MPI for parallelism.

Academic

MPI-HMMER 2.3

See this recipe for compilation and optimization

NAMD

NAMD is a parallel molecular dynamics code designed for high-performance simulation of large biomolecular systems

Molecular Dynamics NAMD Follow this recipe to build and run

NOAA NIM with Support for Intel® Xeon Phi™ Coprocessor

Climate and Weather NOAA/ESRL Follow this recipe

NWChem provides scalable computational chemistry tools

Computational Chemistry NWChem Follow this recipe

Quantum ESPRESSO* for Intel® Xeon Phi™ Coprocessor

Quantum ESPRESSO is an integrated suite of open source computer codes for electronic-structure calculations and materials modeling at the nanoscale.

Materials Modeling

Quantum ESPRESSO*

Follow this recipe to build and run

SHOC

The Scalable Heterogeneous Computing Benchmark Suite (SHOC GitHub) may be used for measuring performance and stability of Coprocessor based systems. The benchmark has been ported to support Intel® Xeon Phi™ using offload programming constructs implemented in the Intel® Compiler that is available as part of Intel® Composer XE 2013 package.

Academic

GitHub

See this recipe for configuration and compilation

WRF

The Weather Research and Forecasting (WRF) model is a numerical weather prediction system designed to serve atmospheric research and operational forecasting needs. WRF is used by academic atmospheric scientists, forecast teams at operational centers, application scientists, etc. Please see http://www.wrf-model.org/index.php for more details about WRF.

Weather, Academic WRF Users Page

See this recipe for configuration and compilation

See this recipe for running the conus2.5km benchmark in Symmetric mode

  • Intel® Many Integrated Core Architecture
  • Server
  • Developers
  • Intel Xeon Phi Coprocessor
  • This is a compendium of success stories and publications that we will add to periodically as we hear about how Intel® Xeon Phi™ Coprocessor technology was applied to solve particular problems, or how performance was obtained. Most of these are external publications.



    General


      

    Computational Physics and Astrophysics


    Energy


    Financial Services


    Health and Life Sciences


    Molecular Dynamics


    Weather and Climate Forecasting


    Do you have a success story to share? Please let us know by posting a topic in our Community Forum with details about where to find it, and what industry/topic area it targets (if specific to a particular line of business)

     

     

  • Intel® Many Integrated Core Architecture
  • Server
  • Server
  • Latest Posts

    New Features for Intel® MIC Architecture in the Intel Compiler
    By AmandaS (Intel)Posted 08/25/20140
    The list below summarizes new features and changes specific to programming for Intel® MIC Architecture with Intel Compiler 15.0: OpenMP 4.0 combined offload constructs Redesign of compiler optimization reports Offload support for transferring arrays of pointers Offload support for non-contigu...
    What’s New in the Intel Compiler
    By AmandaS (Intel)Posted 08/25/20140
    The list below summarizes new features in the Intel® C++ Compiler 15.0 and the Intel® Fortran Compiler 15.0. For more details about changes in the Intel compilers since the previous release, including a list of new options, please refer to the ‘What’s New’ section in the release notes (C++, Fortr...
    Intel® C++ Compiler 15.0 for Linux Sets “-ansi-alias” by Default, Noncompliant Code May Fail
    By AmandaS (Intel)Posted 08/25/20140
    Beginning with version 15.0, the Intel® C++ Compiler for Linux enables -ansi-alias by default at optimization level 2 (-O2). The -ansi-alias option indicates that the code complies with ANSI aliasing rules. If the application code adheres to ANSI aliasing rules, this change allows the compiler t...
    Data transfer of non-contiguous array elements using the Intel® Language Extensions for Offload (LEO) for the Intel® Xeon Phi™ coprocessor
    By Kevin Davis (Intel)Posted 08/22/20140
    The Intel® Parallel Studio XE 2015 Composer Editions for C++ Windows* and Linux* have a feature enhancement supporting data transfer for non-contiguous array elements with the Intel® Language Extensions for Offload (LEO) for the Intel® Xeon Phi™ coprocessor. The feature adds support under the L...
    Subscribe to Intel Developer Zone Articles
    Missing micparse.h
    By Anselm B.3
    Hello,   I am trying to build the micconfig tool from the micmgmt package, but the compiler is complaining about the "micparse.h" file missing. I cannot find it anywhere in the sources. So my obvious question is, where can I find it? Thank you!
    error in offload directive in fortran
    By aketh t.2
    hi all, i have been trying to add a small OFFLOAD section to a program in CESM. however i get the following error on compilation. mpiifort  -c -I.  -I/storage/home/aketh/cesm/cases/B_mic/exe/intel/mpich/nodebug/nothreads/include -I/storage/home/aketh/cesm/cases/B_mic/exe/intel/mpich/nodebug/nothreads/MCT/noesmf/a1l1r1i1o1g1w1/csm_share -I/storage/softwares/installedsoftware/netcdf_4.4.0/include -I/storage/softwares/installedsoftware/netcdf_4.4.0/lib -I/opt/intel/impi/4.1.3.048/intel64/include -I/storage/home/aketh/cesm/cases/B_mic/exe/intel/mpich/nodebug/nothreads/include -I/storage/home/aketh/cesm/models/csm_share/shr -I. -I/home/aketh/cesm/cases/B_mic/SourceMods/src.cam -I/storage/home/aketh/cesm/models/atm/cam/src/chemistry/pp_none -I/storage/home/aketh/cesm/models/atm/cam/src/chemistry/mozart -I/storage/home/aketh/cesm/models/atm/cam/src/chemistry/bulk_aero -I/storage/home/aketh/cesm/models/atm/cam/src/chemistry/utils -I/storage/home/aketh/cesm/models/atm/cam/src/physics/cam -I/...
    launching mpiexec.hydra from host
    By YH33
    Hi, I am trying to do WRF code on a mic card following the instruction from https://software.intel.com/en-us/articles/how-to-get-wrf-running-on-the-... However, when I try to do  mpiexec.hydra -np 1 ./wrf.exe It gave the following error -bash: /opt/intel//impi/5.0.2.044/mic/bin/mpiexec.hydra: cannot execute binary file   I am wondering whether anyone had this problem before? mpiexe.hydra is set using "source /opt/intel/impi/5.0.2.044/mic/bin/mpivars.sh" Thanks    
    MICs and VLANs
    By Panos L.4
    We have a VLAN that needs to be accessed via VLAN Tagging.  This is enabled on the compute hosts as eth2.3.  I've configured eth2 as a bridge (br1) and included the mic cards (mic0, mic1) in this bridge.  Creating br1.3 works to route on the vlan, but the MIC hosts don't seem to support this. Are there any packages we may be missing for VLAN support?
    Two bridges
    By Taras Shapovalov2
    Hi guys, We have faced with a requirement to setup two network bridges and include both MICs into the both networks (on each host of the cluster). Is it possible to implement such configuration with the latest MPSS? Best regards,
    How to align the 3D array which is dynamic allocated by new operator to 64 bytes?
    By Kevin F.2
    Hi! I am using pointer to dynamic allocate a 3D array like this: double ***p; p=new double** [x_dimension];     for (int i=0; i<x_dimension; i++)     {         phi[i]=new double* [y_dimension];         for(int j=0; j<y_dimension; j++)         {             phi[i][j]=new double [z_dimension];         }     } How can I rewrite the code to make sure the allocated memory is 64 bytes alignment? Thanks!
    NFS configuration
    By YH12
    Hi, I am trying to the NFS mounting to work and followed the instruction on the user guide section 7.4.  However, when I got to micctrl --addnfs=172.31.1.254:/micNfs --dir=micNfs I got the following warning [Warning] mic0: Server 172.31.1.254 may not be reachable if the interface is not routed out of the host [Warning] Modified existing NFS entry for MIC card path '/micNfs' [Warning] mic1: Server 172.31.1.254 may not be reachable if the interface is not routed out of the host [Warning] Modified existing NFS entry for MIC card path '/micNfs' [Warning] mic2: Server 172.31.1.254 may not be reachable if the interface is not routed out of the host [Warning] Modified existing NFS entry for MIC card path '/micNfs' and once I log into mic0, and try mount -a and I got the following error mount: RPC: Remote system error - No route to host mount:mounting 172.31.1.254:/micNfs on /micNfs failed: Bad file descriptor I am using CentOS 7.0.    Thanks    
    Issues accessing mic0 with non-root user
    By Sigurhjörtur S.11
    I am having some issues getting access to mic0 through non-root users. Accessing the card as root works fine. The issue is that I keep getting prompted for password and no matter what password I generate (either an empty passphrase or an actual password) I get prompted for a password each time I try to ssh or scp but it never authenticates me and lets me log in. I can however ssh with root using an empty passphrase without any issues. I've tried doing everything, both manually and through micctrl. The user gets created (the username is sigurhjs for future reference when I post some of the data) and the home folder as well. However .ssh folder doesn't get copied. So I've manually copied the .ssh folder as root to the home area of the user (/home/sigurhjs/) and changed the owner to sigurhjs. If I cat the /etc/passwd, /etc/shadow and /etc/group I have the following data for sigurhjs passwd: sigurhjs:x:10127:10129:,,,:/home/sigurhjs:/bin/bash shadow: sigurhjs:*:14914:::::: group: sig...
    Subscribe to Forums
    Migrating Fortran projects to the Intel® Xeon Phi™ coprocessor
    By Frances Roth (Intel) Posted on 12/03/13 0
    This article focuses on aspects of porting Fortran codes to the Intel® Xeon Phi™ coprocessor.  Most of the documentation for the coprocessor is C/C++ centric. Here the focus is on Fortran, which is still the dominant language for scientific programming and for which a large amount of legacy code ...
    What’s New in Intel® Composer XE 2013 SP1
    By loc-nguyen (Intel) Posted on 11/05/13 0
    Intel® Composer XE 2013 SP1 includes Intel® Compiler 14.0 among other components. The list below summarizes the features and enhancement highlights in Intel® Compiler 14.0 that are pertinent to those programming for Intel® Xeon Phi™ coprocessors: Support for the new Intel® Xeon Phi™ Coprocessor,...
    Applying Intel® Threading Building Blocks observers for thread affinity on Intel® Xeon Phi™ coprocessors.
    By Alex Katranov (Intel) Posted on 10/31/13 1
    In spite of the fact that the Intel® Threading Building Blocks (Intel® TBB) library [1] [2] provides high-level task based parallelism intended to hide software thread management, sometimes thread related problems arise. One of these problems is thread affinity [3]. Since thread affinity may help...
    Intel® Xeon Phi™ coprocessor Power Management Turbo Part 2: Hot and Cold Running Silicon
    By Taylor Kidd (Intel) Posted on 10/22/13 0
    The previous blog in this series, “Intel® Xeon Phi™ coprocessor Power Management Turbo Part 1: What is turbo? And how will it affect my horsepower?” can be found at http://software.intel.com/en-us/blogs/2013/09/26/intel-xeon-phi-coprocessor-power-management-turbo-part-1-what-is-turbo-and-how-will...
    Subscribe to Intel Developer Zone Blogs