Have you kept pace with the changes in the message passing interface (MPI) specification? Most likely not, if you’re like most people, even though it is very likely your high-performance computing (HPC) workloads are benefiting from the most recent updates and enhancements done to MPI.
MPI was conceived and developed by academic and industry researchers in the early 1990s and was designed to be a portable message-passing middleware to function on a wide variety of parallel computing architectures.
Today, MPI is widely considered as the de facto parallel programming standard for the most demanding HPC environments. MPI over InfiniBand is used to accelerate workloads on the most powerful supercomputers, including the top three Top500 HPC systems, and four of the top five systems. Additionally, MPI continues to be the dominant middleware for HPC systems and is pervasive across distributed AI/ML applications.
The latest updates and enhancements are being driven by the demands of new application areas such as AI, distributed machine learning (ML), and the increased use of GPUs in HPC environments.
Introducing the MVAPICH project
The MVAPICH project, led by Network-Based Computing Laboratory (NBCL) of The Ohio State University, is developing MPI enhancements to meet the performance demands of these new application areas.
The MVAPICH2 software, based on MPI 3.1 standard, delivers the best performance, scalability, and fault tolerance for high-end computing systems and servers using a wide range of interconnect technologies, including InfiniBand and RoCE networking technologies. The MVAPICH2 software family is also ABI (application binary interface) compatible with various other MPI libraries such as MPICH, IntelMPI, CrayMPI, and others.
The software is now being used by more than 2,925 organizations in 86 countries worldwide to extract the potential of the latest emerging networking technologies, such as in-network computing. As of July, more than 482,000 downloads have taken place from the project’s site, and many vendors, including Mellanox are also distributing this software as part of their own software distributions.
The MVAPICH project is optimizing its implementation of MPI to keep pace with the changing demands in technology and all while keeping faithful to the MPI standard.
Currently, MVAPICH2 2.3 is the latest version and provides many enhancements and new features including MPI-3.1 standards compliance, single copy intra-node communication using Linux supported CMA (Cross Memory Attach), Checkpoint/Restart using LLNL’s Scalable Checkpoint/Restart Library (SCR), high-performance and scalable InfiniBand hardware multicast-based collectives, enhanced shared-memory-aware and intra-node collectives, support for Mellanox SHARP technology for optimized collectives, high-performance communication support for NVIDIA GPU with IPC, collective and non-contiguous datatype support, MPI_T support, and integrated hybrid UD-RC/XRC design, and support for UD only mode. A complete set of features and supported platforms can be found here.
The MVAPICH project’s most recently released libraries are designed to address compute demands and performance requirements of newer HPC workloads and environments.
The libraries deliver specific benefits for different applications or computing needs. They include:
- MVAPICH2: This library offers support for InfiniBand, RoCE, Ethernet and other interconnect technologies.
- MVAPICH2-X: A library that includes advanced MPI features (exploiting UMR, ODP and Core-Direct features of InfiniBand), OSU INAM for Network Analysis and Monitoring, PGAS (OpenSHMEM, UPC, UPC++, and CAF), and MPI+PGAS programming models with unified communication runtime
- MVAPICH2-GDR: This delivers optimized MPI for clusters with NVIDIA GPUs. This library is also designed to deliver high-performance and scalability for the emerging deep-learning applications
- MVAPICH2-Virt: This library offers high-performance and scalable MPI for hypervisor and container-based HPC cloud applications
- MVAPICH2-EA: A library for energy aware and High-performance MPI
Selecting a technology partner
When implementing MPI to improve the performance of your HPC environment, it is not done independently, but rather by partnering with technology companies that have expertise in the area.
Mellanox is a leader in the field and offers high-speed interconnect solutions which based on open standards. They work closely with the MVAPICH project to ensure the benefits provided by the project’s latest libraries take full advantage of the improvements and additional offload engines from its latest 100Gb/s EDR and 200Gb/s HDR InfiniBand. Additionally, Mellanox uses the project’s benchmarks to validate performance claims.
At the heart of the Mellanox HPC software offering is its HPC-X™. This is a comprehensive software package that includes MPI, SHMEM, and UPC communications libraries. HPC-X also includes various acceleration packages to improve both the performance and scalability of applications running on top of these libraries, including support for MXM (Mellanox Messaging) which accelerates the underlying send/receive (or put/get) messages, and FCA (Fabric Collectives Accelerations) which accelerates the underlying collective operations used by the MPI/PGAS languages.
Mellanox HPC-X takes full advantage of the Mellanox hardware-based acceleration engines to maximize MPI, SHMEM/PGAS and UPC based applications. These acceleration engines are part of the Mellanox adapter (CORE-Direct engine) and switch (Mellanox SHARP engine) solutions. Mellanox Scalable Hierarchical Aggregation and Reduction Protocol (SHARP)™ technology improves upon the performance of MPI operations by offloading collective operations from the CPU to the switch network, and by eliminating the need to send data multiple times between endpoints. This innovative approach decreases the amount of data traversing the network as aggregation nodes are reached which dramatically reduces the MPI operations time.
Implementing collective communication algorithms in the network also has additional benefits, such as freeing up valuable CPU resources for computation rather than using them to process communication.
Mellanox HPC-X allows OEM’s and System Integrators to meet the needs of their end-users by deploying the latest available software that takes advantage of the features and capabilities available in the most recent hardware and firmware changes.
Summary
New HPC application areas including AI and ML, along with the growing use of GPUs to accelerate compute-intensive applications requires robust and feature-rich message passing.
The MVAPICH project is producing new MPI libraries to enhance the performance of HPC systems and speed the execution of the most demanding workloads.
Today, MPI is supported on virtually all HPC platforms. It is highly portable. There is little or no need to modify your source code when you port your application to a different platform that supports the MPI standard.
Moreover, vendor implementations, such as Mellanox HPC-X, can further exploit native hardware features to optimize performance.
For more information about the MVAPICH project, visit: http://mvapich.cse.ohio-state.edu/
For more details about implementing MPI in today’s demanding HPC environments, visit: http://www.mellanox.com/page/hpcx_overview