Namespaces | |
| Grappa | |
| this core's base pointer | |
Classes | |
| class | GlobalAddress< T > |
| Global address class. More... | |
| struct | LocalIterator< T > |
Macros | |
| #define | symmetric_static static |
| Use this macro to allocate space for a variable at the same address on all cores. More... | |
Functions | |
| template<typename T > | |
| GlobalAddress< T > | operator+ (const GlobalAddress< T > &t, ptrdiff_t i) |
| return an address that's i T's more than t. More... | |
| template<typename T > | |
| GlobalAddress< T > | operator- (const GlobalAddress< T > &t, ptrdiff_t i) |
| return an address that's i T's less than t. More... | |
| template<typename T > | |
| ptrdiff_t | operator- (const GlobalAddress< T > &t, const GlobalAddress< T > &u) |
| how many T's different are t and u? More... | |
| template<> | |
| ptrdiff_t | operator-< char > (const GlobalAddress< char > &t, const GlobalAddress< char > &u) |
| how many bytes different are t and u? More... | |
| template<typename T > | |
| GlobalAddress< T > | make_global (T *t, Core n=global_communicator.mycore) |
| return a 2d global pointer to a local pointer on a particular core More... | |
| template<typename T > | |
| GlobalAddress< T > | make_linear (T *t) |
| takes a local pointer to a block-cyclic distributed chuck of memory allocated at the same base address on all cores, and makes a linear global pointer pointing to that byte. More... | |
| template<typename T > | |
| std::ostream & | operator<< (std::ostream &o, const GlobalAddress< T > &ga) |
| output human-readable version of global address More... | |
| template<typename T , typename M > | |
| GlobalAddress< M > | global_pointer_to_member (const GlobalAddress< T > t, const M T::*m) |
| computes offsets of members in structs and claases call like this: More... | |
| template<typename T > | |
| LocalIterator< T > | iterate_local (GlobalAddress< T > base, size_t nelem) |
| Helper for iterating over local elements of a Linear address range. More... | |
| template<typename T > | |
| T * | Grappa::locale_alloc (size_t n=1) |
| Allocate memory in locale shared heap. More... | |
| template<typename T > | |
| T * | Grappa::locale_alloc_aligned (size_t alignment, size_t n=1) |
| template<typename T , typename... Args> | |
| T * | Grappa::locale_new (Args &&...args) |
| allocate an object in the locale shared heap, passing arguments to its constructor More... | |
| template<typename T > | |
| T * | Grappa::locale_new () |
| allocate an object in the locale shared heap More... | |
| template<typename T > | |
| T * | Grappa::locale_new_array (size_t n=1) |
| allocate an array in the locale shared heap More... | |
| void | Grappa::locale_free (void *ptr) |
| Free memory that was allocated from locale shared heap. More... | |
| #define symmetric_static static |
Use this macro to allocate space for a variable at the same address on all cores.
NOTE: the variable declared will be zero-initialized on all cores. Assiging a nonzero initial value is not guaranteed to work; constructors are not guaranteed to run. You should initialize the variable yourself the first time you use it, or with an on_all_cores().
Definition at line 188 of file GlobalAllocator.hpp.
|
inline |
computes offsets of members in structs and claases call like this:
Definition at line 463 of file Addressing.hpp.
| LocalIterator<T> iterate_local | ( | GlobalAddress< T > | base, |
| size_t | nelem | ||
| ) |
Helper for iterating over local elements of a Linear address range.
Definition at line 490 of file Addressing.hpp.
|
inline |
Allocate memory in locale shared heap.
Definition at line 112 of file LocaleSharedMemory.hpp.
|
inline |
Definition at line 121 of file LocaleSharedMemory.hpp.
|
inline |
Free memory that was allocated from locale shared heap.
Definition at line 148 of file LocaleSharedMemory.hpp.
|
inline |
allocate an object in the locale shared heap, passing arguments to its constructor
Definition at line 131 of file LocaleSharedMemory.hpp.
|
inline |
allocate an object in the locale shared heap
Definition at line 137 of file LocaleSharedMemory.hpp.
|
inline |
allocate an array in the locale shared heap
Definition at line 143 of file LocaleSharedMemory.hpp.
| GlobalAddress< T > make_global | ( | T * | t, |
| Core | n = global_communicator.mycore |
||
| ) |
return a 2d global pointer to a local pointer on a particular core
Definition at line 435 of file Addressing.hpp.
| GlobalAddress< T > make_linear | ( | T * | t | ) |
takes a local pointer to a block-cyclic distributed chuck of memory allocated at the same base address on all cores, and makes a linear global pointer pointing to that byte.
Definition at line 443 of file Addressing.hpp.
| GlobalAddress< T > operator+ | ( | const GlobalAddress< T > & | t, |
| ptrdiff_t | i | ||
| ) |
return an address that's i T's more than t.
Definition at line 397 of file Addressing.hpp.
| GlobalAddress< T > operator- | ( | const GlobalAddress< T > & | t, |
| ptrdiff_t | i | ||
| ) |
return an address that's i T's less than t.
Definition at line 409 of file Addressing.hpp.
|
inline |
how many T's different are t and u?
Definition at line 421 of file Addressing.hpp.
|
inline |
how many bytes different are t and u?
Definition at line 429 of file Addressing.hpp.
| std::ostream& operator<< | ( | std::ostream & | o, |
| const GlobalAddress< T > & | ga | ||
| ) |
output human-readable version of global address
Definition at line 449 of file Addressing.hpp.