Galois
|
Large array of objects with proper specialization for void type and supporting various allocation and construction policies. More...
#include <LargeArray.h>
Classes | |
struct | size_of |
Public Types | |
typedef T | raw_value_type |
typedef T | value_type |
typedef size_t | size_type |
typedef ptrdiff_t | difference_type |
typedef value_type & | reference |
typedef const value_type & | const_reference |
typedef value_type * | pointer |
typedef const value_type * | const_pointer |
typedef pointer | iterator |
typedef const_pointer | const_iterator |
Public Member Functions | |
LargeArray (void *d, size_t s) | |
Wraps existing buffer in LargeArray interface. More... | |
LargeArray () | |
LargeArray (LargeArray &&o) | |
LargeArray & | operator= (LargeArray &&o) |
LargeArray (const LargeArray &)=delete | |
LargeArray & | operator= (const LargeArray &)=delete |
~LargeArray () | |
const_reference | at (difference_type x) const |
reference | at (difference_type x) |
const_reference | operator[] (size_type x) const |
reference | operator[] (size_type x) |
void | set (difference_type x, const_reference v) |
size_type | size () const |
iterator | begin () |
const_iterator | begin () const |
iterator | end () |
const_iterator | end () const |
void | allocateInterleaved (size_type n) |
[allocatefunctions] Allocates interleaved across NUMA (memory) nodes. More... | |
void | allocateBlocked (size_type n) |
Allocates using blocked memory policy. More... | |
void | allocateLocal (size_type n) |
Allocates using Thread Local memory policy. More... | |
void | allocateFloating (size_type n) |
Allocates using no memory policy (no pre alloc) More... | |
template<typename RangeArrayTy > | |
void | allocateSpecified (size_type numberOfElements, RangeArrayTy &threadRanges) |
Allocate memory to threads based on a provided array specifying which threads receive which elements of data. More... | |
template<typename... Args> | |
void | construct (Args &&...args) |
[allocatefunctions] More... | |
template<typename... Args> | |
void | constructAt (size_type n, Args &&...args) |
template<typename... Args> | |
void | create (size_type n, Args &&...args) |
Allocate and construct. More... | |
void | deallocate () |
void | destroy () |
template<typename U = T> | |
std::enable_if_t <!std::is_scalar< U >::value > | destroyAt (size_type n) |
template<typename U = T> | |
std::enable_if_t < std::is_scalar< U >::value > | destroyAt (size_type) |
const_pointer | data () const |
pointer | data () |
Static Public Attributes | |
static const bool | has_value = true |
Protected Types | |
enum | AllocType { Blocked, Local, Interleaved, Floating } |
Protected Member Functions | |
void | allocate (size_type n, AllocType t) |
Friends | |
class | boost::serialization::access |
void | swap (LargeArray &lhs, LargeArray &rhs) |
Large array of objects with proper specialization for void type and supporting various allocation and construction policies.
T | value type of container |
typedef const_pointer galois::LargeArray< T >::const_iterator |
typedef const value_type* galois::LargeArray< T >::const_pointer |
typedef const value_type& galois::LargeArray< T >::const_reference |
typedef ptrdiff_t galois::LargeArray< T >::difference_type |
typedef pointer galois::LargeArray< T >::iterator |
typedef value_type* galois::LargeArray< T >::pointer |
typedef T galois::LargeArray< T >::raw_value_type |
typedef value_type& galois::LargeArray< T >::reference |
typedef size_t galois::LargeArray< T >::size_type |
typedef T galois::LargeArray< T >::value_type |
|
protected |
|
inline |
Wraps existing buffer in LargeArray interface.
|
inline |
|
inline |
|
delete |
|
inline |
|
inlineprotected |
|
inline |
Allocates using blocked memory policy.
n | number of elements to allocate |
|
inline |
Allocates using no memory policy (no pre alloc)
n | number of elements to allocate |
|
inline |
[allocatefunctions] Allocates interleaved across NUMA (memory) nodes.
|
inline |
Allocates using Thread Local memory policy.
n | number of elements to allocate |
|
inline |
Allocate memory to threads based on a provided array specifying which threads receive which elements of data.
RangeArrayTy | The type of the threadRanges array; should either be uint32_t* or uint64_t* |
numberOfElements | Number of elements to allocate space for |
threadRanges | An array specifying how elements should be split among threads |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
[allocatefunctions]
|
inline |
|
inline |
Allocate and construct.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
delete |
|
inline |
|
inline |
|
inline |
|
inline |
|
friend |
|
friend |
|
static |