Galois::LargeArray< T > Class Template Reference

Large array of objects with proper specialization for void type and supporting various allocation and construction policies. More...

#include <LargeArray.h>

List of all members.

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_typereference
typedef const value_typeconst_reference
typedef value_typepointer
typedef const value_typeconst_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

Detailed Description

template<typename T>
class Galois::LargeArray< T >

Large array of objects with proper specialization for void type and supporting various allocation and construction policies.

Template Parameters:
T value type of container

Member Typedef Documentation

template<typename T>
typedef const_pointer Galois::LargeArray< T >::const_iterator
template<typename T>
typedef const value_type* Galois::LargeArray< T >::const_pointer
template<typename T>
typedef const value_type& Galois::LargeArray< T >::const_reference
template<typename T>
typedef ptrdiff_t Galois::LargeArray< T >::difference_type
template<typename T>
typedef pointer Galois::LargeArray< T >::iterator
template<typename T>
typedef value_type* Galois::LargeArray< T >::pointer
template<typename T>
typedef T Galois::LargeArray< T >::raw_value_type
template<typename T>
typedef value_type& Galois::LargeArray< T >::reference
template<typename T>
typedef size_t Galois::LargeArray< T >::size_type
template<typename T>
typedef T Galois::LargeArray< T >::value_type

Constructor & Destructor Documentation

template<typename T>
Galois::LargeArray< T >::LargeArray ( void *  d,
size_t  s 
) [inline]

Wraps existing buffer in LargeArray interface.

template<typename T>
Galois::LargeArray< T >::LargeArray (  )  [inline]
template<typename T>
Galois::LargeArray< T >::~LargeArray (  )  [inline]

Member Function Documentation

template<typename T>
void Galois::LargeArray< T >::allocate ( size_type  n,
bool  interleave,
bool  prefault 
) [inline, protected]
template<typename T>
void Galois::LargeArray< T >::allocateInterleaved ( size_type  n  )  [inline]

Allocates interleaved across NUMA (memory) nodes. Must.

template<typename T>
void Galois::LargeArray< T >::allocateLocal ( size_type  n,
bool  prefault = true 
) [inline]

Allocates using default memory policy (usually first-touch).

Parameters:
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.
template<typename T>
reference Galois::LargeArray< T >::at ( difference_type  x  )  [inline]
template<typename T>
const_reference Galois::LargeArray< T >::at ( difference_type  x  )  const [inline]
template<typename T>
const_iterator Galois::LargeArray< T >::begin (  )  const [inline]
template<typename T>
iterator Galois::LargeArray< T >::begin (  )  [inline]
template<typename T>
template<typename... Args>
void Galois::LargeArray< T >::construct ( Args &&...  args  )  [inline]
template<typename T>
template<typename... Args>
void Galois::LargeArray< T >::constructAt ( size_type  n,
Args &&...  args 
) [inline]
template<typename T>
template<typename... Args>
void Galois::LargeArray< T >::create ( size_type  n,
Args &&...  args 
) [inline]

Allocate and construct.

template<typename T>
pointer Galois::LargeArray< T >::data (  )  [inline]
template<typename T>
const_pointer Galois::LargeArray< T >::data (  )  const [inline]
template<typename T>
void Galois::LargeArray< T >::deallocate (  )  [inline]
template<typename T>
void Galois::LargeArray< T >::destroy (  )  [inline]
template<typename T>
void Galois::LargeArray< T >::destroyAt ( size_type  n  )  [inline]
template<typename T>
const_iterator Galois::LargeArray< T >::end (  )  const [inline]
template<typename T>
iterator Galois::LargeArray< T >::end (  )  [inline]
template<typename T>
reference Galois::LargeArray< T >::operator[] ( size_type  x  )  [inline]
template<typename T>
const_reference Galois::LargeArray< T >::operator[] ( size_type  x  )  const [inline]
template<typename T>
void Galois::LargeArray< T >::set ( difference_type  x,
const_reference  v 
) [inline]
template<typename T>
size_type Galois::LargeArray< T >::size (  )  const [inline]

Member Data Documentation

template<typename T>
int Galois::LargeArray< T >::allocated [private]
template<typename T>
const bool Galois::LargeArray< T >::has_value = true [static]
template<typename T>
T* Galois::LargeArray< T >::m_data [private]
template<typename T>
size_t Galois::LargeArray< T >::m_size [private]

The documentation for this class was generated from the following file:

Generated on 2 Nov 2013 for Galois by  doxygen 1.6.1