CategoryDevelopment, Library, MPI
DescriptionMVAPICH2 is an MPI-3 implementation. It provides many features including MPI-3 standard 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 Zero-Copy collectives (using LiMIC), high-performance communication support for NVIDIA GPU with IPC, collective and non-contiguous datatype support, integrated hybrid UD-RC/XRC design, support for UD only mode, nemesis-based interface, shared memory interface, scalable and robust daemon-less job startup (mpirun-rsh), flexible process manager support (mpirun-rsh and mpiexec.hydra), full autoconf-based configuration, portable hardware locality (hwloc) with flexible CPU granularity policies (core, socket and numanode) and binding policies (bunch and scatter) with SMT support, flexible rail binding with processes for multirail configurations, message coalescing, dynamic process migration, fast process-level fault-tolerance with checkpoint-restart, fast job-pause-migration-resume framework for pro-active fault-tolerance, suspend/resume, network-level fault-tolerance with Automatic Path Migration (APM), RDMA CM support, iWARP support, optimized collectives, on-demand connection management, multi-pathing, RDMA Read-based and RDMA-write-based designs, polling and blocking-based communication progress, multi-core optimized and scalable shared memory support, LiMIC2-based kernel-level shared memory support for both two-sided and one-sided operations, shared memory backed Windows for one-Sided communication, HugePage support, and memory hook with ptmalloc2 library support.
Available versions (Euler, old software stack)
|Legacy versions||Supported versions||New versions|
|1.8.1, 2.0b, 2.0rc1, 2.0rc2||2.1||2.0.1, 2.2, 2.2a|
Environment modules (Euler, old software stack)The mvapich2 module is a smart module, which checks for a loaded compiler module and then loads the corresponding MVAPICH2 version. For the module load command example, we use the standard compiler gcc/4.8.2.
|Version||Module load command||Additional modules loaded automatically|
|1.8.1||module load legacy gcc/4.8.2 mvapich/1.8.1|
|2.0b||module load legacy gcc/4.8.2 mvapich/2.0b|
|2.0rc1||module load legacy gcc/4.8.2 mvapich/2.0rc1|
|2.0rc2||module load legacy gcc/4.8.2 mvapich/2.0rc2|
|2.1||module load gcc/4.8.2 mvapich/2.1|
|2.0.1||module load new gcc/4.8.2 mvapich/2.0.1|
|2.2a||module load new gcc/4.8.2 mvapich/2.2a|