The HPC-X™ OpenSHMEM programming library is a one-side communications library that supports a unique set of parallel programming features including point-to-point and collective routines, synchronizations, atomic operations, and a shared memory paradigm used between the processes of a parallel programming application.
SHMEM (SHared MEMory), uses the PGAS model to allow processes to globally share variables by allowing each process to see the same variable name, but each process keeps its own copy of the variable. Modification to another process address space is then accomplished using put/get (or write/read) semantics. The ability of put/get operations, or one-sided communication, is one of the major differences between SHMEM and MPI (Message Passing Interface) which only uses two-sided, send/ receive semantics.
The HPC-X OpenSHMEM main features are:
- Provides a programming library for shared memory communication model extending use of InfiniBand to SHMEM applications
- Seamless integration with MPI libraries and job schedulers allowing for Hybrid programming model
- Maximum collective scalability through integration with Mellanox Fabric Collective Accelerator (FCA)
- High message rate performance with integration and Mellanox Messaging Accelerator (MXM)