#include <memarmci.h>
Inheritance diagram for sc::ARMCIMemoryGrp:
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. |
It uses the ARMCI interface.
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.
Reimplemented from 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.
Reimplemented from sc::MsgMemoryGrp.
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::free_local | ( | void * | data | ) | [virtual] |