sc::procmemorygrp(3)
NAME
sc::ProcMemoryGrp - The ProcMemoryGrp concrete class provides an
implementation of MemoryGrp for a single processor.
SYNOPSIS
#include <memproc.h> Inherits sc::MemoryGrp. Public Member Functions ProcMemoryGrp (const Ref< KeyVal > &) void set_localsize (size_t) Set the size of locally held memory. void * localdata () Returns a pointer to the local data. void * obtain_readwrite (distsize_t offset, int size) Only one thread can have an unreleased obtain_readwrite at a time. void * obtain_readonly (distsize_t offset, int size) This gives read access to the memory location. No locking is done. void * obtain_writeonly (distsize_t offset, int size) This gives write access to the memory location. No locking is done. void release_readonly (void *data, distsize_t offset, int size) This is called when read access is no longer needed. void release_writeonly (void *data, distsize_t offset, int size) This is called when write access is no longer needed. void release_readwrite (void *data, distsize_t offset, int size) This is called when read/write access is no longer needed. void sync () Synchronizes all the nodes.
Detailed Description
The ProcMemoryGrp concrete class provides an implementation of
MemoryGrp for a single processor.
Member Function Documentation
- void sc::ProcMemoryGrp::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::ProcMemoryGrp::obtain_readwrite (distsize_t offset, int size)
- [virtual]
Only one thread can have an unreleased obtain_readwrite at a time. - The actual memory region locked can be larger than that requested. If
the memory region is already locked this will block. For this reason,
data should be held as read/write for as short a time as possible. - Implements sc::MemoryGrp.
- void sc::ProcMemoryGrp::release_readwrite (void * data, distsize_t offset,
- int size) [virtual]
This is called when read/write access is no longer needed. - The memory will be unlocked.
- Implements sc::MemoryGrp.
- void sc::ProcMemoryGrp::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.