KASKADE 7 development version
|
An STL allocator that uses memory of a specific NUMA node only. More...
#include <threading.hh>
An STL allocator that uses memory of a specific NUMA node only.
Definition at line 652 of file threading.hh.
Classes | |
struct | rebind |
Public Types | |
typedef T | value_type |
typedef T * | pointer |
typedef T const * | const_pointer |
typedef T & | reference |
typedef T const & | const_reference |
typedef std::size_t | size_type |
typedef std::ptrdiff_t | difference_type |
typedef std::true_type | propagate_on_container_copy_assignment |
typedef std::true_type | propagate_on_container_move_assignment |
typedef std::true_type | propagate_on_container_swap |
Public Member Functions | |
NumaAllocator (int node) | |
Construct an allocator for allocating on the given NUMA node. More... | |
int | node () const |
Reports the node on which we allocate. More... | |
pointer | address (reference x) const |
const_pointer | address (const_reference x) const |
size_type | max_size () const |
pointer | allocate (size_type n, std::allocator< void >::const_pointer=0) |
Allocates the requested amount of memory. More... | |
void | deallocate (pointer p, size_type n) |
template<class U , class... Args> | |
void | construct (U *p, Args &&... args) |
template<class U > | |
void | destroy (U *p) |
template<class U > | |
bool | operator== (NumaAllocator< U > const &other) const |
comparison for equality More... | |
template<class U > | |
bool | operator!= (NumaAllocator< U > const &other) const |
typedef T const* Kaskade::NumaAllocator< T >::const_pointer |
Definition at line 657 of file threading.hh.
typedef T const& Kaskade::NumaAllocator< T >::const_reference |
Definition at line 659 of file threading.hh.
typedef std::ptrdiff_t Kaskade::NumaAllocator< T >::difference_type |
Definition at line 661 of file threading.hh.
typedef T* Kaskade::NumaAllocator< T >::pointer |
Definition at line 656 of file threading.hh.
typedef std::true_type Kaskade::NumaAllocator< T >::propagate_on_container_copy_assignment |
Definition at line 665 of file threading.hh.
typedef std::true_type Kaskade::NumaAllocator< T >::propagate_on_container_move_assignment |
Definition at line 666 of file threading.hh.
typedef std::true_type Kaskade::NumaAllocator< T >::propagate_on_container_swap |
Definition at line 667 of file threading.hh.
typedef T& Kaskade::NumaAllocator< T >::reference |
Definition at line 658 of file threading.hh.
typedef std::size_t Kaskade::NumaAllocator< T >::size_type |
Definition at line 660 of file threading.hh.
typedef T Kaskade::NumaAllocator< T >::value_type |
Definition at line 655 of file threading.hh.
|
inline |
Construct an allocator for allocating on the given NUMA node.
node | the NUMA node on which to allocate the memory. This has to be less than NumaThreadPool::instance().nodes(). For negative values, the memory is allocated in interleaved mode. |
Definition at line 681 of file threading.hh.
|
inline |
Definition at line 698 of file threading.hh.
|
inline |
Definition at line 693 of file threading.hh.
|
inline |
Allocates the requested amount of memory.
n | number of objects of type T |
If
Definition at line 716 of file threading.hh.
|
inline |
Definition at line 731 of file threading.hh.
|
inline |
Definition at line 724 of file threading.hh.
Definition at line 737 of file threading.hh.
|
inline |
Definition at line 703 of file threading.hh.
|
inline |
Reports the node on which we allocate.
Definition at line 688 of file threading.hh.
Referenced by Kaskade::NumaAllocator< T >::operator!=(), and Kaskade::NumaAllocator< T >::operator==().
|
inline |
Definition at line 754 of file threading.hh.
|
inline |
comparison for equality
Allocators compare equal, if they allocate on the same NUMA node.
Definition at line 748 of file threading.hh.