The Intel MPI Library is a high-performance, multi-fabric message-passing library that implements the industry-standard Message Passing Interface (MPI) specification. It is widely used in High-Performance Computing (HPC) and distributed systems to enable parallel computing across multiple computing nodes. Core Architecture and Features
MPICH Basis: Built as an optimized implementation of the open-source MPICH and MVAPICH2 specifications.
Fabric Independence: Supports an interconnect-independent design allowing seamless communication over InfiniBand, Omni-Path, Ethernet, or TCP/IP fabrics.
Hardware Interoperability: Allows developers to swap underlying network hardware or upgrade processors without modifying application code.
GPU-Aware Pipelining: Includes optimizations for pipelined data transfer directly to and from GPU memory architectures. Ecosystem and Components
The library is distributed as part of the Intel oneAPI HPC Toolkit and contains two distinct software layers:
Runtime Environment (RTE): Contains execution utilities like the Hydra process management system alongside standard shared libraries needed to run pre-compiled code.
Development Kit (SDK): Includes header files, static libraries, test scripts, and compiler wrapper scripts. Compiler Wrapper Tooling
When compiling applications, the SDK provides specific wrapper scripts that seamlessly map back to either Intel’s native compilers or GNU GCC: Target Architecture Intel Compiler Wrapper GNU GCC Wrapper C Language mpiicc mpicc C++ Language mpiicpc / mpicxx mpicxx Fortran mpiifort mpifc Environment Execution
To deploy programs built with Intel MPI, developers rely on command line startup managers:
mpirun: The basic command standard for spinning up parallel tasks across an allocated cluster.
mpiexec.hydra: The underlying process manager used to control process pinning and resource allocation over remote nodes. Intel® MPI Library
Leave a Reply