MPQC  3.0.0-alpha
The Group Library

The group library provides three mechanisms for parallel execution and communication. These are:

Message Passing

The MessageGrp class is the ancestor for classes that provide the passing of messages between processes. There are three important specializations of this class:

ProcMessageGrp

Provides a dummy MessageGrp for single processor case.

MPIMessageGrp

Implements MessageGrp using the Message Passing Interface (MPI) library.

ShmMessageGrp

Implements MessageGrp using SysV Interprocess communication.

Due to the widespread acceptance of MPI and the large number of features that it supports, the MessageGrp specialization may one day be eliminated.

Distributed Shared Memory

The MemoryGrp class is the ancestor for classes that permit access to the memory in different processes, possible on difference machines. There are two important specializations of this class:

ProcMemoryGrp

Provides a dummy MemoryGrp for single processor case.

MTMPIMemoryGrp

This works reliably and efficiently, however, requires POSIX threads and a thread-safe MPI implementation.

ARMCIMemoryGrp

This message group uses the Aggregate Remote Copy Interface (ARMCI). This exploits the RDMA capabilities of interconnects such as Myrinet and InfiniBand.

Multi-Threading

The ThreadGrp class is the ancestor of classes that provide multiple-threads within a single address space. There are two important specializations of this class:

ProcThreadGrp

Provides a dummy ThreadGrp for the single thread case.

PthreadThreadGrp

This is a ThreadGrp that uses POSIX threads.


Generated at Sun Jan 26 2020 23:24:02 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.8.16.