Galois
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
runtime/Mem.h File Reference
#include <cstddef>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <list>
#include <map>
#include <memory>
#include <boost/utility.hpp>
#include "galois/config.h"
#include "galois/gIO.h"
#include "galois/runtime/PagePool.h"
#include "galois/substrate/CacheLineStorage.h"
#include "galois/substrate/NumaMem.h"
#include "galois/substrate/PerThreadStorage.h"
#include "galois/substrate/PtrLock.h"
#include "galois/substrate/SimpleLock.h"

Go to the source code of this file.

Classes

class  galois::runtime::MallocHeap
 [Example Third Party Allocator] More...
 
class  galois::runtime::ThreadPrivateHeap< SourceHeap >
 [Example Third Party Allocator] More...
 
class  galois::runtime::LockedHeap< SourceHeap >
 Apply a lock to a heap. More...
 
class  galois::runtime::ZeroOut< SourceHeap >
 
class  galois::runtime::AddHeader< Header, SourceHeap >
 Add a header to objects. More...
 
class  galois::runtime::OwnerTaggedHeap< SourceHeap >
 Allow looking up parent heap pointers. More...
 
class  galois::runtime::FreeListHeap< SourceHeap >
 Maintain a freelist. More...
 
class  galois::runtime::SelfLockFreeListHeap< SourceHeap >
 Maintain a freelist using a lock which doesn't cover SourceHeap. More...
 
class  galois::runtime::BlockHeap< ElemSize, SourceHeap >
 
class  galois::runtime::BumpHeap< SourceHeap >
 This implements a bump pointer though chunks of memory. More...
 
class  galois::runtime::BumpWithMallocHeap< SourceHeap >
 This implements a bump pointer though chunks of memory that falls back to malloc if the source heap cannot accommodate an allocation. More...
 
class  galois::runtime::SystemHeap
 This is the base source of memory for all allocators. More...
 
class  galois::runtime::StaticSingleInstance< Derived >
 
class  galois::runtime::PageHeap
 
class  galois::runtime::SizedHeapFactory
 
struct  galois::runtime::VariableSizeHeap
 Scalable variable-size allocations. More...
 
class  galois::runtime::FixedSizeHeap
 Main scalable allocator in Galois. More...
 
class  galois::runtime::SerialNumaHeap
 
class  galois::runtime::FixedSizeAllocator< Ty >
 A fixed size block allocator. More...
 
class  galois::runtime::FixedSizeAllocator< void >
 
struct  galois::runtime::FixedSizeAllocator< void >::rebind< Other >
 
class  galois::runtime::FixedSizeAllocator< Ty >
 A fixed size block allocator. More...
 
struct  galois::runtime::FixedSizeAllocator< Ty >::rebind< Other >
 
class  galois::runtime::Pow_2_BlockHeap
 
class  galois::runtime::Pow_2_BlockAllocator< Ty >
 
struct  galois::runtime::Pow_2_BlockAllocator< Ty >::rebind< Other >
 
class  galois::runtime::Pow_2_BlockAllocator< void >
 
struct  galois::runtime::Pow_2_BlockAllocator< void >::rebind< Other >
 
class  galois::runtime::ExternalHeapAllocator< Ty, HeapTy >
 Keep a reference to an external allocator. More...
 
class  galois::runtime::ExternalHeapAllocator< void, HeapTy >
 
struct  galois::runtime::ExternalHeapAllocator< void, HeapTy >::rebind< Other >
 
class  galois::runtime::ExternalHeapAllocator< Ty, HeapTy >
 Keep a reference to an external allocator. More...
 
struct  galois::runtime::ExternalHeapAllocator< Ty, HeapTy >::rebind< Other >
 
class  galois::runtime::SerialNumaAllocator< T >
 
struct  galois::runtime::SerialNumaAllocator< T >::rebind< Other >
 

Namespaces

 galois
 The Galois namespace containing all Galois structures and functions.
 
 galois::runtime
 Internal Galois functionality - Use at your own risk.
 

Functions

void galois::runtime::preAlloc_impl (unsigned num)
 Memory management functionality. More...
 
void galois::runtime::pagePreAlloc (int numpages)
 Preallocate numpages large pages for each thread. More...
 
void galois::runtime::pageIn (void *buf, size_t len, size_t stride)
 Forces the given block to be paged into physical memory. More...
 
void galois::runtime::pageInReadOnly (void *buf, size_t len, size_t stride)
 Forces the given readonly block to be paged into physical memory. More...
 
int galois::runtime::numNumaAllocForNode (unsigned nodeid)
 Returns total small pages allocated by OS on a NUMA node. More...
 
void galois::runtime::printInterleavedStats (int minPages=16 *1024)
 Print lines from /proc/pid/numa_maps that contain at least n (non-huge) pages. More...