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. | |
LargeArray () | |
~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) |
Allocates interleaved across NUMA (memory) nodes. Must. | |
void | allocateLocal (size_type n, bool prefault=true) |
Allocates using default memory policy (usually first-touch). | |
template<typename... Args> | |
void | construct (Args &&...args) |
template<typename... Args> | |
void | constructAt (size_type n, Args &&...args) |
template<typename... Args> | |
void | create (size_type n, Args &&...args) |
Allocate and construct. | |
void | deallocate () |
void | destroy () |
void | destroyAt (size_type n) |
const_pointer | data () const |
pointer | data () |
Static Public Attributes | |
static const bool | has_value = true |
Protected Member Functions | |
void | allocate (size_type n, bool interleave, bool prefault) |
Private Attributes | |
T * | m_data |
size_t | m_size |
int | allocated |
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 |
Galois::LargeArray< T >::LargeArray | ( | void * | d, | |
size_t | s | |||
) | [inline] |
Wraps existing buffer in LargeArray interface.
Galois::LargeArray< T >::LargeArray | ( | ) | [inline] |
Galois::LargeArray< T >::~LargeArray | ( | ) | [inline] |
void Galois::LargeArray< T >::allocate | ( | size_type | n, | |
bool | interleave, | |||
bool | prefault | |||
) | [inline, protected] |
void Galois::LargeArray< T >::allocateInterleaved | ( | size_type | n | ) | [inline] |
Allocates interleaved across NUMA (memory) nodes. Must.
void Galois::LargeArray< T >::allocateLocal | ( | size_type | n, | |
bool | prefault = true | |||
) | [inline] |
Allocates using default memory policy (usually first-touch).
n | number of elements to allocate | |
prefault | Prefault/touch memory to place it local to the currently executing thread. By default, true because concurrent page-faulting can be a scalability bottleneck. |
reference Galois::LargeArray< T >::at | ( | difference_type | x | ) | [inline] |
const_reference Galois::LargeArray< T >::at | ( | difference_type | x | ) | const [inline] |
const_iterator Galois::LargeArray< T >::begin | ( | ) | const [inline] |
iterator Galois::LargeArray< T >::begin | ( | ) | [inline] |
void Galois::LargeArray< T >::construct | ( | Args &&... | args | ) | [inline] |
void Galois::LargeArray< T >::constructAt | ( | size_type | n, | |
Args &&... | args | |||
) | [inline] |
void Galois::LargeArray< T >::create | ( | size_type | n, | |
Args &&... | args | |||
) | [inline] |
Allocate and construct.
pointer Galois::LargeArray< T >::data | ( | ) | [inline] |
const_pointer Galois::LargeArray< T >::data | ( | ) | const [inline] |
void Galois::LargeArray< T >::deallocate | ( | ) | [inline] |
void Galois::LargeArray< T >::destroy | ( | ) | [inline] |
void Galois::LargeArray< T >::destroyAt | ( | size_type | n | ) | [inline] |
const_iterator Galois::LargeArray< T >::end | ( | ) | const [inline] |
iterator Galois::LargeArray< T >::end | ( | ) | [inline] |
reference Galois::LargeArray< T >::operator[] | ( | size_type | x | ) | [inline] |
const_reference Galois::LargeArray< T >::operator[] | ( | size_type | x | ) | const [inline] |
void Galois::LargeArray< T >::set | ( | difference_type | x, | |
const_reference | v | |||
) | [inline] |
size_type Galois::LargeArray< T >::size | ( | ) | const [inline] |
int Galois::LargeArray< T >::allocated [private] |
const bool Galois::LargeArray< T >::has_value = true [static] |
T* Galois::LargeArray< T >::m_data [private] |
size_t Galois::LargeArray< T >::m_size [private] |