Get Started with the Intel® MPI Library for Windows* OS

ID 768726
Date 12/16/2022
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Get Started with Intel® MPI Library for Intel® oneAPI on Windows* OS

The Intel® MPI Library enables you to create, maintain, and test advanced applications that have performance advantages on high-performance computing (HPC) clusters based on Intel® processors.

The Intel MPI Library is available as a standalone product and as part of the Intel® oneAPI HPC Toolkit.The Intel MPI Library is a multi-fabric message passing library that implements the Message Passing Interface, version 3.1 (MPI-3.1) specification. Use the library to develop applications that can run on multiple cluster interconnects.

The Intel MPI Library has the following features:

  • Low overhead enables analysis of large amounts of data
  • MPI tuning utility for accelerating your applications
  • Interconnect independence and flexible runtime fabric selection

The product consists of the following main components:

  • Compilation tools, including compiler drivers such as mpiicc and mpifort
  • Include files and modules
  • Dynamic (.dll) libraries, debug libraries, interface libraries, and program database(.pdb) files
  • Process Manager and tools to run programs
  • Test code
  • Documentation provided as a separate package or available from the Intel Developer Zone

Intel MPI Library also includes Intel® MPI Benchmarks, which enable you to measure MPI operations on various cluster architectures and MPI implementations. For details, see the Intel® MPI Benchmarks User Guide. Source code is available in the GitHub repository.

Key Features

The Intel MPI Library has the following major features:

  • MPI-1, MPI-2.2 and MPI-3.1 specification conformance
  • Interconnect independence
  • Supported Languages:

    • For GNU* compilers: C, C++, Fortran 77, Fortran 95
    • For Intel® compilers: C, C++, Fortran 77, Fortran 90, Fortran 95

Prerequisites

Before you start using Intel MPI Library, complete the following steps:

1. Run the setvars.bat script to set the environment variables for the Intel MPI Library. The script is located in the installation directory (by default, C:\Program Files (x86)\Intel\oneAPI).

2. Install and run the Hydra services on the compute nodes. Open the command prompt as an administrator and enter:

> hydra_service -install 
> hydra_service -start 

3. Register your credentials:

> mpiexec -register 

For detailed system requirements, see Intel® MPI Library System Requirements.

Building and Running MPI Programs

Compiling an MPI Program

1. Make sure you have the desired compiler installed and configured properly. For example, for the Intel® C++ Compiler, run:

> icl

If the command is not recognized, add the compiler to your PATH. For the Intel® compilers, you can run the vars.bat script from corresponding directory.

2. Compile your program using the appropriate compiler driver. For example, for a test C program:

> mpiicc -o test.exe <install-dir>\test\test.c 

Running an MPI Program

Execute the program using the mpiexec command. For example, for the test program:

> mpiexec -n <# of processes> test.exe 

To specify the hosts to run the program on, use the -hosts option:

> mpiexec -n <# of processes> -ppn <# of processes per node> -hosts <host1>,<host2>,...,<hostN> test.exe

Troubleshooting

If you encounter problems when using Intel MPI Library, go through the following general procedures to troubleshoot them:

  • Check known issues and limitations in the Release Notes.
  • Check hosts accessibility. Run a simple non-MPI application (for example, hostname utility) on the problem hosts with mpiexec. This check helps you reveal an environmental problem , or connectivity problem (for example, unreachable hosts).
  • Run the MPI application with debug information enabled. To enable the debug information, set the environment variable I_MPI_DEBUG=6. You can also set a different debug level to get more detailed information. This action helps you find the problem component.

See more details in the “Troubleshooting” section of the Developer Guide.

More Resources