Grappa  0.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Containers

Namespaces

 Grappa::util
 

Classes

class  Grappa::SuspendedDelegateQueue
 
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 121 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 134 of file Array.hpp.

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

Definition at line 139 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 149 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 49 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 61 of file Array.hpp.

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

not implemented yet

Definition at line 157 of file Array.hpp.

Variable Documentation

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

Definition at line 55 of file GlobalVector.hpp.