# sc::MTMPIMemoryGrp Class Reference

This MemoryGrp class requires a MT-safe MPI implementation. More...

`#include <memmtmpi.h>`

Inheritance diagram for sc::MTMPIMemoryGrp:

List of all members.

## Public Member Functions

| MTMPIMemoryGrp (const Ref< MessageGrp > &msg, const Ref< ThreadGrp > &th, MPI_Comm comm=MPI_COMM_WORLD)
| Construct a MTMPIMemoryGrp given a MessageGrp, ThreadGrp, and an MPI communicator.
| MTMPIMemoryGrp (const Ref< KeyVal > &)
| Construct a MTMPIMemoryGrp given a KeyVal input object.
void | activate ()
| Activate is called before the memory is to be used.
void | deactivate ()
| Deactivate is called after the memory has been used.
void | sync ()
| Synchronizes all the nodes.

## Friends

class | MTMPIThread

## Detailed Description

This MemoryGrp class requires a MT-safe MPI implementation.

The default MessageGrp must be a MPIMessageGrp. MPI must be safe with respect to the default ThreadGrp. Alternately, a MessageGrp and a ThreadGrp can be passed to the constructor.

## Constructor & Destructor Documentation

sc::MTMPIMemoryGrp::MTMPIMemoryGrp | ( | const Ref< MessageGrp > & | msg,
|  | const Ref< ThreadGrp > & | th,
|  | MPI_Comm | comm = `MPI_COMM_WORLD`
| ) |  |

Construct a MTMPIMemoryGrp given a MessageGrp, ThreadGrp, and an MPI communicator.

The communicator can be a subset of MPI_COMM_WORLD, in which case, the MessageGrp must refer to the same subset.

sc::MTMPIMemoryGrp::MTMPIMemoryGrp | ( | const Ref< KeyVal > & |  | ) |

Construct a MTMPIMemoryGrp given a KeyVal input object.

A fully thread safe MPI is needed (MPI_THREAD_MULTIPLE).

## Member Function Documentation

void sc::MTMPIMemoryGrp::sync | ( |  | ) | `[virtual]`

Synchronizes all the nodes.

This is useful after remote memory writes to be certain that all of the writes have completed and the data can be accessed locally, for example.

Reimplemented from sc::MsgMemoryGrp.

The documentation for this class was generated from the following file:

- memmtmpi.h