Intel® MPI Library

Making applications perform better on Intel® architecture-based clusters with multiple fabric flexibility

  • Scalability verified up to 150k processes
  • Supports the latest MPI-3 standard
  • MPICH ABI compatibility

Available in Intel® Parallel Studio XE Cluster Edition.
Buy Now

Or Download a Free 30-Day Evaluation Version

Students, educators, academic researchers, and open source contributors may qualify for Free Software Tools.

Deliver Flexible, Efficient, and Scalable Cluster Messaging

Intel® MPI Library 5.0 focuses on making applications perform better on Intel® architecture-based clusters—implementing the high performance Message Passing Interface Version 3.0 specification on multiple fabrics. It enables you to quickly deliver maximum end user performance even if you change or upgrade to new interconnects, without requiring changes to the software or operating environment.

Use this high performance MPI message library to develop applications that can run on multiple cluster interconnects chosen by the user at runtime. Benefit from a free runtime environment kit for products developed with Intel® MPI Library. Get excellent performance for enterprise, divisional, departmental, workgroup, and personal High Performance Computing.


“Fast and accurate state of the art general purpose CFD solvers is the focus at S & I Engineering Solutions Pvt, Ltd. Scalability and efficiency are key to us when it comes to our choice and use of MPI Libraries. The Intel® MPI Library has enabled us to scale to over 10k cores with high efficiency and performance.”
Nikhil Vijay Shende, Director,
S & I Engineering Solutions, Pvt. Ltd.


Optimized shared memory path for multicore platforms allows more communication throughput and lower latencies. Native InfiniBand interface (OFED verbs) also provides support for lower latencies. Multi-rail capability for higher bandwidth and increased interprocess communication and Tag Matching Interface (TMI) support for higher performance on Intel® True Scale, Qlogic* PSM, and Myricom* MX solutions.

  • Low latency MPI implementation up to 2 times as fast as alternative MPI libraries
  • Enable optimized shared memory dynamic connection mode for large SMP nodes
  • Increase performance with improved DAPL, OFA, and TMI fabric support
  • Accelerate applications using the enhanced tuning utility for MPI


Implementing the high performance MPI 3.0 specification on multiple fabrics, Intel® MPI Library for Windows* and Linux* focuses on making applications perform better on IA-based clusters. Intel® MPI Library enables you to quickly deliver maximum end-user performance, even if you change or upgrade to new interconnects without requiring major modifications to the software or to the operating environment. Intel also provides a free runtime environment kit for products developed with the Intel® MPI Library.

  • Scaling verified up to 150k Processes
  • Thread safety allows you to trace hybrid multithreaded MPI applications for optimal performance on multi- and many-core Intel® Architecture.
  • Improved start scalability through the mpiexec.hydra process manager

Interconnect Independence & Flexible Runtime Fabric Selection

Whether you need to run TCP sockets, shared memory, or one of many Remote Direct Memory Access (RDMA) based interconnects, including InfiniBand*, Intel® MPI Library covers all configurations by providing an accelerated universal, multi-fabric layer for fast interconnects via the Direct Access Programming Library (DAPL*) or the Open Fabrics Association (OFA*) methodology. Develop MPI code independent of the fabric, knowing it will run efficiently on whatever network is chosen by the user at runtime.

  • Get high-performance interconnects, including Intel® True Scale, Myrinet* MX, and QLogic* PSM interfaces as well as TCP, shared memory, and others
  • Efficiently work through the Direct Access Programming Library (DAPL*), Open Fabrics Association (OFA*), and Tag Matching Interface (TMI*), making it easy for you to test and run applications on a variety of network fabrics.
    Optimizations to all levels of cluster fabrics: from shared memory thru Ethernet and RDMA-based fabrics to the tag matching interconnects

Intel® MPI Library dynamically establishes the connection, but only when needed, which reduces the memory footprint. It also automatically chooses the fastest transport available. Memory requirements are reduced by several methods including a two-phase communication buffer enlargement capability which allocates only the memory space actually required.

MPI 3.0 Standard Support

The next major evolution of the Message Passing Interface is with the release of the MPI-3.0 standard. Significant changes to remote memory access (RMA) one-sided communications, addition of non-blocking collective operations, and large counts messages greater than 2GB will enhance usability and performance. Now available in the Intel® MPI Library 5.0.

Binary compatibility

Intel® MPI Library offers binary compatibility with existing MPI-1.x and MPI-2.x applications. Even if you’re not ready to move to the new standard, you can still take advantage of the latest Intel® MPI Library performance improvements without recompiling. Furthermore, the Intel® MPI Library is an active collaborator in the MPICH ABI Compatibility Initiative, ensuring any MPICH-compiled code can use our runtimes.

Support for Mixed Operating Systems

Run a single MPI job using a cluster with mixed operating systems (Windows* OS and Linux OS*) under the Hydra process manager. Get more flexibility in job deployment with this added functionality.

Latest Processor Support

Intel consistently offers the first set of tools to take advantage of the latest performance enhancements in the newest Intel product, while preserving compatibility with older Intel and compatible processors. New support includes AVX2, TSX, FMA3 and AVX-512.

Videos to help you get started.

Register for future Webinars

Previously recorded Webinars:

  • MPI-3 Is Here: Optimize and Perform with Intel MPI Tools
  • Intel® MPI library implementation of a new MPI3.0 standard - new features and performance benchmarks
  • Increase Cluster MPI Application Performance with a "MPI Tune" Up
  • MPI on Intel® Xeon Phi™ coprocessor

More Tech Articles

Mapping of Intel® MPI Library versions to bundle suites
By Gergana Slavova (Intel)Posted 08/28/20140
Introduction: Mapping the Intel® MPI Library numbers to specific suites and update versions Intel® Parallel Studio XE 2015 Update 1 Cluster Edition (released 26 November 2014) Intel® MPI Library 5.0 Intel® Registration Center Activation Date ( Windows Version / build Linu...
Using Intel® MPI Library 5.0 with MPICH based applications
By Dmitry Sivkov (Intel)Posted 08/25/20140
Why it is needed? Different MPI implementations have their specific benefits and advantages. So in the specific cluster environment the HPC application with the other MPI implementation can probably perform better.  Intel® MPI Library has the following benefits: Support of the wide range of cl...
NOAA NIM with Support for Intel® Xeon Phi™ Coprocessor
By Ashish Jha (Intel)Posted 07/03/20140
Non-hydrostatic Icosahedral Model is a weather forecasting model developed by NOAA. G6 K96 which is a smaller data-set which scales best up to 4 cluster nodes. G9 is useful for studying larger clusters. The code supports the symmetric mode of operation of the Intel® Xeon® processor (Referred to a...
Intel® Cluster Tools Open Source Downloads
By Gergana Slavova (Intel)Posted 03/06/20140
This article makes available third-party libraries and sources that were used in the creation of Intel® Software Development Products. Intel provides this software pursuant to their applicable licenses. Products and Versions: Intel® Trace Analyzer and Collector for Linux* (whi...
Subscribe to Intel Developer Zone Articles

Supplemental Documentation

Intel® Parallel Studio XE 2015 Update 4 Cluster Edition Readme
By Gergana Slavova (Intel)Posted 06/03/20150
The Intel® Parallel Studio XE 2015 Update 4 Cluster Edition for Windows* combines all Intel® Parallel Studio XE and Intel® Cluster Tools into a single package. This multi-component software toolkit contains the core libraries and tools to efficiently develop, optimize, run, and distribute paralle...
Intel® Parallel Studio XE 2015 Update 3 Cluster Edition Readme
By Gergana Slavova (Intel)Posted 04/24/20150
The Intel® Parallel Studio XE 2015 Update 3 Cluster Edition for Linux* and Windows* combines all Intel® Parallel Studio XE and Intel® Cluster Tools into a single package. This multi-component software toolkit contains the core libraries and tools to efficiently develop, optimize, run, and distrib...
Intel® Parallel Studio XE 2015 Update 2 Cluster Edition Readme
By Gergana Slavova (Intel)Posted 02/06/20150
The Intel® Parallel Studio XE 2015 Update 2 Cluster Edition for Linux* and Windows* combines all Intel® Parallel Studio XE and Intel® Cluster Tools into a single package. This multi-component software toolkit contains the core libraries and tools to efficiently develop, optimize, run, and distrib...
Intel® Parallel Studio XE 2015 Update 1 Cluster Edition Readme
By Gergana Slavova (Intel)Posted 11/24/20140
The Intel® Parallel Studio XE 2015 Update 1 Cluster Edition for Linux* and Windows* combines all Intel® Parallel Studio XE and Intel® Cluster Tools into a single package. This multi-component software toolkit contains the core libraries and tools to efficiently develop, optimize, run, and distrib...
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 started!
By Gergana Slavova (Intel)0
The Intel® Parallel Studio XE 2016 Beta program is now available! In this beta test, you will have early access to Intel® Parallel Studio XE 2016 products and the opportunity to provide feedback to help make our products better. Registration is easy through the pre-Beta survey site. This suite of products brings together exciting new technologies along with improvements to Intel’s existing software development tools: Expanded Standards and Features – Scaling Development Efforts Forward Additional language support for C11 and C++14, Fortran 2008 Submodules and IMPURE ELEMENTAL, and C Interoperability from Fortran 2015, and OpenMP* 4.1 TR 3.  New support for SIMD operator use with SSE integer types, Intel® Cilk™ Plus combined Parallel and SIMD loops, OpenMP* 4.0 user-defined reductions (C++ only), enhanced uninitialized variable detection (Fortran only), feature improvements to Intel’s Language Extensions for Offload, annotated source listings, and a new directory structure.  All a...
Problem with Intel Trace Collector
By Marco C.1
I'm trying to use for the first time the intel trace collector on a cluster machine (with the intel xe 2013 and the itac I built my program in the standard production mode and in the bash script submitted to the PBS scheduler there were the following commands: #PBS -l select=14:ncpus=16:mem=120gb:mpiprocs=16 module load intel/cs-xe-2013 source [path]/cs-xe-2013/none/itac/ mpirun -trace [path]/my_program [arguments] Reading the log I saw that the program reached its end 4 hours ago, but the job is still running: a .prot file with 17064 bytes and a .sft file with 0 byte have been written. Did I do something wrong? Thank you in advance  
Where are these references located? Installation error?
By Brandon W.2
All, Thank you for taking a look at this! I have downloaded and installed composer xe 2015.3.187 and didn't see any obvious errors. However, when I try to run an often used code from other machines on my new machine, I get: /usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../lib64/crt1.o: In function `_start': (.text+0x20): undefined reference to `main' /home/bwheeler/intel/impi/ undefined reference to `PMPIX_Comm_group_failed' /home/bwheeler/intel/impi/ undefined reference to `PMPIX_Comm_remote_group_failed' /home/bwheeler/intel/impi/ undefined reference to `PMPIX_Comm_reenable_anysource' /home/bwheeler/intel/impi/ undefined reference to `MPID_b_use_gettimeofday' /home/bwheeler/intel/impi/ undefined reference to `i_malloc' /home/bwheeler/intel/impi/ undefined refe...
Deadlock with MPI_Win_fence going from Intel MPI to
By tjahns0
We encountered a problem when migrating a code from Intel MPI to The code in question is a complex simulation that first reads global input state from disk into several parts in memory and then accesses this memory in a hard to predict fashion to create a new decomposition. We use active target RMA for this (on machines which support this like BG/Q we also use passive target) since a rank might need data from the part that is at another rank to form its halo. Since the mesh we work on stores edges, cell centers and vertices in different data structures, we have 3 corresponding MPI_Win_create calls per mesh. For local refinement the number of these meshes can be increased as needed, the problem I'm about to describe happens with 3 nested meshes. With Intel MPI the program locks up in this code, with some ranks being stuck in one MPI_Win_fence for one of the RMA windows and others being stuck in the next MPI_Win_fence (about 30 code lines later) for anot...
RLIMIT_MEMLOCK too small, although locked men = unlimited
By joseph g.0
 Hello,   I am currently working on testing our new inifiniband cards and am running into some problems.  The cluster is small, 8 compute nodes, 16 cores each, with the master having 4 cores.  The nodes are connected via ethernet(for PXE booting) and inifiniband connected via Qlogic 12300 switch.  The IB cards are Qlogic 7342, and the job scheduler is SLURM.  The problem is that even though my memlock is unlimited, it is complaining that it is too small. Below is a truncation of the all the warnings since they are all the same.  Any ideas on what could be causing the issue?  Thanks in advance.  For what its worth, dapl does not work either. [-1] MPI startup(): Imported environment partly inaccesible. Map=0 Info=9717a0 [17] MPI startup(): RLIMIT_MEMLOCK too small [1] MPI startup(): fabric ofa failed: will try use tcp fabric [1] MPI startup(): tcp data transfer mode   [jmgonza6@cluster] $> ulimit -a core file size          (blocks, -c) 0 data seg size           (kbytes, -d) unlimit...
[UPDATED] : Maximum MPI Buffer Dimension
By artu720
HI, there is a maximum dimension in MPI buffer size? I have a buffer dimension problem with my MPI code when trying to MPI_Pack large arrays. The offending instruction is the first pack call: CALL MPI_PACK( VAR(GIB,LFMG)%R,LVB,MPI_DOUBLE_PRECISION,BUF,LBUFB,ISZ,MPI_COMM_WORLD,IE )where the double precision array R has LVB=6331625 elements, BUF = 354571000, and LBUF = BUF*8 = 2836568000 (since I have to send other 6 arrays with the same dimension as R). The error output is the following: Fatal error in PMPI_Pack: Invalid count, error stack: PMPI_Pack(272): MPI_Pack(inbuf=0x2b4384000010, incount=6331625, MPI_DOUBLE_PRECISION, outbuf=0x2b51e593d010, outcount=-1458399296, position=0x7fffe24fbaa8, MPI_COMM_WORLD) failed PMPI_Pack(190): Negative count, value is -1458399296 It is a Fortran 2008 code on Intel MPI on a cluster with Infiniband connection between nodes, here are the versions: ifort (IFORT) 15.0.0 20140723 Intel(R) MPI Library for Linux* OS, Version 5.0 Update 1 Build 20140709 ...
MPI_Recv block a long time
By wang b.0
hello:     I get into trouble when use MPI_Recv in my programmes.      My programme start 3 subprocess,and bind them to cpu 1-3 respectively. In each subprocess, first disabled interrupts , then send message to other process and receive from others. Repeat it a billion times.     I except that MPI_Recv will return in a fixed times ,and not use MPI_irecv instead.     In order to do that, i disabled interrupts and cancel ticks on cpu1-3,remove other process from cpu 1-3 to cpu 0,and bind interrupts to cpu0.     But I found that a very few times(about a billion times may happen 1 times) the MPI_Recv will block for more than 600 ms, but normally the MPI_Recv only take less than 10ms.     I don't know why the  MPI_Recv some times block so long,is there any method to find the reason and solve the problem?    Use mpirun -n 3 to execute the programmes, use Hydra and Shared memory fabrics.    environment :    parallel_studio_xe_2015_update2  linux 3.10  =====  Processor composition...
Run MPI job on LSF for Windows
By Yongjun L.0
When I ran a MPI job on Linux using LSF, I just use bsub to submit the following script file and  #!/bin/bash #BSUB -n 8 #BSUB -R "OSNAME==Linux && ( SPEED>=2500 ) && ( OSREL==EE60 || OSREL==EE58 || OSREL==EE63 ) && SFIARCH==OPT64 && mem>=32000" #BSUB -q lnx64 #BSUB -W 1:40 cd my_working_directory mpirun  mympi The system will start 8 mympi jobs.  I don't need to specify machine names in the mpirun command line.  How can I run the similar mpi job on the Windows cluster using LSF? If I ran the job with mpiexec mympi mympi job cannot start because mpiexec cannot get machine information. Yongjun    
Subscribe to Forums


  • What kinds of licenses are available for the Intel® MPI Library?
  • The Runtime license includes everything you need to run Intel MPI-based applications. The license is free and permanent. The Developer license includes everything needed to build and run applications. It is fee-based and permanent. It allows free redistribution of the components needed to run Intel MPI-based applications.

  • When is a Developer license required for the Intel® MPI Library?
  • The two kits (developer and runtime) can co-exist on a machine and it is fine for customers of Intel MPI-based applications to relink the application to include user subroutines. If the customer is actually writing MPI code (calling MPI_* functions directly), then a Developer license would be needed.

  • I am an ISV and am planning to ship my product with Intel® MPI Library. Do my customers have to buy the Intel® MPI Library Development Kit in order to use my software?
  • No. There are currently 3 different models if ISVs want to ship with Intel MPI Library.
    1) An ISV can redistribute the runtime components of the Intel MPI Library available from the development kit (see the redist.txt file in the Intel MPI Library installation directory for list of redistributable files).
    2) If a customer would rather install the Intel MPI Library as a system component, the Runtime Environment Kit can be downloaded free of charge from the Intel MPI Library product page.
    3) The Intel® MPI Library Runtime Environment (RTO) can be pre-installed by the vendor and shipped with the application.



  • Does the Intel® MPI Library support 32-bit applications on 64-bit operating systems?
  • No. The Intel® MPI Library only supports 64-bit apps on 64-bit operating systems on Intel® 64. For more details, visit our Deprecation page.

  • Is there a Microsoft* Windows* version of the Intel® MPI Library?
  • Yes. The Intel MPI Library for Windows is available now.

  • Does the Intel MPI Library run on AMD platforms?
  • Yes. The Intel® MPI Library is known to run on AMD platforms, and we have had no issue reports specific to AMD platforms so far.

  • Does the Intel® MPI Library support parallel I/O calls?
  • Yes. The parallel file I/O part of the MPI-2 standard is fully implemented by the Intel® MPI Library 5.0. Some of the currently supported file systems include Unix File System (UFS), Network File System (NFS), Parallel Virtual File System (PVFS2), and Lustre*.  For a complete list, check the Release Notes.

  • Does the Intel® MPI Library support one-sided communication?
  • Yes. The Intel® MPI Library supports both active target and passive target one-sided communication. The only exception is the passive target one-sided communication in case the target process does not call any MPI functions. Further support is available through the new one-sided calls and memory models in MPI-3.0.

  • Does the Intel® MPI Library support heterogeneous clusters?
  • Yes. The Intel® MPI Library now supports clusters running different operating systems as well as an environment of mixed Intel processors. The library provides default optimizations depending on the detected architecture.

  • What DAPL* version does the Intel® MPI Library support?
  • The Intel® MPI Library uses Direct Access Programming Library (DAPL) as a fabric independent API to run on fast interconnects like InfiniBand* or Myrinet*. Currently the Intel MPI Library supports DAPL* version 1.1, 1.2 as well as DAPL* version 2.0-capable providers. Intel MPI automatically determines the version of DAPL standard to which the provider conforms.

  • What compilers does the Intel® MPI Library support?
  • The Intel® MPI Library supports Intel® Compilers 13.1 through 15.0 (or higher), as well as GNU* C, C++, Fortran77 3.3 or higher, and GNU* Fortran95 4.0 or higher. Additionally, the Intel® MPI Library provides a bundled source kit that offers support for the PGI* C, PGI* Fortran 77, and Absoft* Fortran 77 compilers out of the box, with the following caveats:

    • The PGI* compiled source files must not transfer long double entities
    • The Absoft* based build procedure must use the -g77, -B108 compiler option
    • You must take care of installing and selecting the right compilers
    • You must make sure that the respective compiler runtime is installed on all nodes

    You may have to build extra Intel® MPI binding libraries if you need support for PGI* C++, PGI* Fortran 95, and Absoft* Fortran 95 bindings. If you need access to this additional binding kit, contact us via the Intel® Premier Support portal @

  • Does the Intel® MPI Library work with any common resource managers?
  • Yes. The Intel® MPI Library supports OpenPBS*, PBS Pro*, Torque, LSF*, Parallelnavi*, NetBatch*, SLURM*, SGE*, LoadLeveler* and Lava* batch schedulers. The simplified job startup command mpirun recognizes when it is run inside a session started by any PBS compatible resource manager (like OpenPBS*, PBS Pro*, Torque*), as well as LSF*. See the Intel® MPI Library Reference Manual for a description of this command.

  • I have a mixed application which uses both MPI and OpenMP* calls. Does the Intel® MPI Library support this type of hybrid functionality?
  • Yes, Intel MPI does support mixed MPI/OpenMP applications.


  • Is the Intel® MPI Library fault-tolerant?
  • Yes, to an extent. Note that the MPI standard does not yet define proper handling of aborted MPI ranks. By default, the Intel® MPI Library will stop the entire application if any of the processes exit abnormally. This behavior can be overwritten via a runtime option where the library does allow for an application to continue execution even if one of the processes stops responding. Check the Intel® MPI Library Reference Manual for details and application requirements.

  • Is the Intel® MPI Library thread safe?
  • Yes. The Intel® MPI Library includes thread safe libraries at level MPI_THREAD_MULTIPLE. Several threads can make the Intel MPI Library calls simultaneously. Use the compiler driver -mt_mpi option to link the thread safe version of the Intel MPI Library. Use the thread safe libraries if you request the thread support at the following levels:


  • How can I learn what version of the Intel® MPI Library is installed on the system?
  • You can use mpirun –V to get versioning and build information:

    mpirun –V
    This will output version information.

    If this is an official package, look up the mpisupport.txt file or the Release Notes and search for a version information there:
    cat /opt/intel/mpi/5.0/mpisupport.txt

    If Intel MPI has been installed in RPM mode, try to query the RPM database:
    rpm –qa | grep intel-mpi

    Finally, for full build identification information, set I_MPI_VERSION to 1 and run any MPI program, grepping for "Build":
    mpirun –n 2 –env ./a.out | grep –i build
    This will turn up a couple of lines with the build date. Most of this information is also imbedded into the library and can be queried using the strings utility:
    strings /opt/intel/mpi/5.0/lib/ | grep –i build

Intel® MPI Library 5.0

Getting Started?

Click the Learn tab for guides and links that will quickly get you started.

Get Help or Advice

Search Support Articles
Forums - The best place for timely answers from our technical experts and your peers. Use it even for bug reports.
Support - For secure, web-based, engineer-to-engineer support, visit our Intel® Premier Support web site. Intel Premier Support registration is required.
Download, Registration and Licensing Help - Specific help for download, registration, and licensing questions.


Release Notes - View Release Notes online!
Intel® MPI Library Product Documentation - View documentation online!
Documentation for other software products