Grappa  r3821, hash 22cd626d567a91ead5b23302066d1e9469f45c66
Containers

Namespaces

 Grappa::util
 

Classes

class  Grappa::SuspendedDelegateQueue
 
struct  Grappa::GlobalVector< T, BUFFER_CAPACITY >::Master
 
struct  Grappa::GlobalVector< T, BUFFER_CAPACITY >::Proxy
 
struct  Grappa::GlobalVector< T, BUFFER_CAPACITY >::Range
 
class  Grappa::GlobalVector< T, BUFFER_CAPACITY >
 

Functions

template<typename T , typename S >
void Grappa::memset (GlobalAddress< T > base, S value, size_t count)
 Initialize an array of elements of generic type with a given value. More...
 
template<typename T , typename S >
void Grappa::memset (T *base, S value, size_t count)
 Type-based memset for local arrays to match what is provided for distributed arrays. More...
 
template<typename T >
void Grappa::memcpy (GlobalAddress< T > dst, GlobalAddress< T > src, size_t nelem)
 Memcpy over Grappa global arrays. More...
 
template<typename T >
void Grappa::memcpy (T *dst, T *src, size_t nelem)
 Helper so we don't have to change the code if we change a Global pointer to a normal pointer (in theory). More...
 
template<>
void Grappa::memcpy< void > (void *dst, void *src, size_t nelem)
 
template<GlobalCompletionEvent * GCE = &impl::local_gce, typename T = void>
void Grappa::memcpy_async (GlobalAddress< T > dst, GlobalAddress< T > src, size_t nelem)
 Asynchronous version of memcpy, spawns only on cores with array elements. More...
 
template<typename T >
void Grappa::prefix_sum (GlobalAddress< T > array, size_t nelem)
 not implemented yet More...
 

Variables

const Core Grappa::MASTER = 0
 
class Grappa::GlobalBag Grappa::GRAPPA_BLOCK_ALIGNED
 

Detailed Description

Function Documentation

template<typename T >
void Grappa::memcpy ( GlobalAddress< T >  dst,
GlobalAddress< T >  src,
size_t  nelem 
)

Memcpy over Grappa global arrays.

Arguments dst and src must point into global arrays (so must be linear addresses) and be non-overlapping, and both must have at least nelem elements.

Definition at line 132 of file Array.hpp.

template<typename T >
void Grappa::memcpy ( T *  dst,
T *  src,
size_t  nelem 
)
inline

Helper so we don't have to change the code if we change a Global pointer to a normal pointer (in theory).

Definition at line 145 of file Array.hpp.

template<>
void Grappa::memcpy< void > ( void *  dst,
void *  src,
size_t  nelem 
)
inline

Definition at line 150 of file Array.hpp.

template<GlobalCompletionEvent * GCE = &impl::local_gce, typename T = void>
void Grappa::memcpy_async ( GlobalAddress< T >  dst,
GlobalAddress< T >  src,
size_t  nelem 
)

Asynchronous version of memcpy, spawns only on cores with array elements.

Synchronizes with given GlobalCompletionEvent, so memcpy's are known to be complete after GCE->wait(). Note: same restrictions on dst and src as Grappa::memcpy).

Definition at line 160 of file Array.hpp.

template<typename T , typename S >
void Grappa::memset ( GlobalAddress< T >  base,
value,
size_t  count 
)

Initialize an array of elements of generic type with a given value.

This version sends a large number of active messages, the same way as the Incoherent releaser, to set each part of a global array. In theory, this version should be able to be called from multiple locations at the same time (to initialize different regions of global memory).

Parameters
baseBase address of the array to be set.
valueValue to set every element of array to (will be copied to all the nodes)
countNumber of elements to set, starting at the base address.

Definition at line 60 of file Array.hpp.

template<typename T , typename S >
void Grappa::memset ( T *  base,
value,
size_t  count 
)

Type-based memset for local arrays to match what is provided for distributed arrays.

Definition at line 72 of file Array.hpp.

template<typename T >
void Grappa::prefix_sum ( GlobalAddress< T >  array,
size_t  nelem 
)

not implemented yet

Definition at line 168 of file Array.hpp.

Variable Documentation

class Grappa::Worker Grappa::GRAPPA_BLOCK_ALIGNED
const Core Grappa::MASTER = 0

Definition at line 66 of file GlobalVector.hpp.