---
name: "sc_ARMCIMemoryGrp"
section: "3"
platform: "linux"
package: "libsc-doc"
version: "2.3.1-22"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/sc_ARMCIMemoryGrp"
---

# sc\_ARMCIMemoryGrp(3)

The ARMCIMemoryGrp concrete class provides an implementation of MsgMemoryGrp.

## NAME

sc::ARMCIMemoryGrp - The **ARMCIMemoryGrp** concrete class provides an implementation of **MsgMemoryGrp**.

## SYNOPSIS

`#include <memarmci.h>`

Inherits **sc::RDMAMemoryGrp**.

### Public Member Functions

**ARMCIMemoryGrp** (const **Ref**\< **MessageGrp** \> &msg)\
 **ARMCIMemoryGrp** (const **Ref**\< **KeyVal** \> &)\
 void **set\_localsize** (size\_t)\
 Set the size of locally held memory.  void **retrieve\_data** (void \*, int node, int **offset**, int **size**, int lock)\
 void **replace\_data** (void \*, int node, int **offset**, int **size**, int unlock)\
 void **sum\_data** (double \*data, int node, int doffset, int dsize)\
 void **sync** ()\
 Synchronizes all the nodes.  void **deactivate** ()\
 Deactivate is called after the memory has been used.  void \* **malloc\_local** (size\_t nbyte)\
 Allocate data that will be accessed locally only.  void **free\_local** (void \*data)\
 Free data that was allocated with malloc\_local\_double.  void **print** (std::ostream &o=**ExEnv::out0**()) const\
 Prints out information about the object.

### Additional Inherited Members

## Detailed Description

The **ARMCIMemoryGrp** concrete class provides an implementation of **MsgMemoryGrp**.

It uses the ARMCI interface.

## Member Function Documentation

### void sc::ARMCIMemoryGrp::deactivate ()` [virtual]`

Deactivate is called after the memory has been used.

Reimplemented from **sc::MemoryGrp**.

### void sc::ARMCIMemoryGrp::free\_local (void \* data)` [virtual]`

Free data that was allocated with malloc\_local\_double.

Reimplemented from **sc::MemoryGrp**.

### void \* sc::ARMCIMemoryGrp::malloc\_local (size\_t nbyte)` [virtual]`

Allocate data that will be accessed locally only. Using this for data that will be used for global operation can improve efficiency. Data allocated in this way must be freed with free\_local\_double. \

Reimplemented from **sc::MemoryGrp**.

### void sc::ARMCIMemoryGrp::print (std::ostream & o = ExEnv::out0`()`) const` [virtual]`

Prints out information about the object.

Reimplemented from **sc::MemoryGrp**.

### void sc::ARMCIMemoryGrp::replace\_data (void \*, int node, int offset, int size, int unlock)` [virtual]`

Implements **sc::RDMAMemoryGrp**.

### void sc::ARMCIMemoryGrp::retrieve\_data (void \*, int node, int offset, int size, int lock)` [virtual]`

Implements **sc::RDMAMemoryGrp**.

### void sc::ARMCIMemoryGrp::set\_localsize (size\_t)` [virtual]`

Set the size of locally held memory. When memory is accessed using a global offset counting starts at node 0 and proceeds up to node **n()** - 1.

Implements **sc::MemoryGrp**.

### void sc::ARMCIMemoryGrp::sum\_data (double \* data, int node, int doffset, int dsize)` [virtual]`

Implements **sc::RDMAMemoryGrp**.

### void sc::ARMCIMemoryGrp::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.

Implements **sc::MemoryGrp**.

## Author

Generated automatically by Doxygen for MPQC from the source code.
