sc::ARMCIMemoryGrp Class Reference

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

#include <memarmci.h>

Inheritance diagram for sc::ARMCIMemoryGrp:

sc::RDMAMemoryGrp sc::MsgMemoryGrp sc::MemoryGrp sc::DescribedClass sc::RefCount sc::Identity List of all members.

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.

Detailed Description

The ARMCIMemoryGrp concrete class provides an implementation of MsgMemoryGrp.

It uses the ARMCI interface.


Member Function Documentation

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]

Free data that was allocated with malloc_local_double.

Reimplemented from sc::MemoryGrp.


The documentation for this class was generated from the following file:
Generated at Mon Dec 3 23:23:59 2007 for MPQC 2.3.1 using the documentation package Doxygen 1.5.2.