Galois::Runtime::MM Namespace Reference

Memory management functionality. More...

Classes

class  ThreadAwarePrivateHeap
 Per-thread heaps using Galois thread aware construct. More...
class  LockedHeap
 Apply a lock to a heap. More...
class  ZeroOut
class  AddHeader
 Add a header to objects. More...
class  OwnerTaggedHeap
 Allow looking up parent heap pointers. More...
class  FreeListHeap
 Maintain a freelist. More...
class  SelfLockFreeListHeap
 Maintain a freelist using a lock which doesn't cover SourceHeap. More...
class  BlockAlloc
class  SimpleBumpPtr
 This implements a bump pointer though chunks of memory. More...
class  SimpleBumpPtrWithMallocFallback
 This implements a bump pointer though chunks of memory that falls back to malloc if the source heap cannot accommodate an allocation. More...
class  SystemBaseAlloc
 This is the base source of memory for all allocators. More...
class  SizedAllocatorFactory
class  FixedSizeAllocator
class  FSBGaloisAllocator< void >
class  FSBGaloisAllocator
class  ExternRefGaloisAllocator< void, AllocTy >
class  ExternRefGaloisAllocator

Functions

void * pageAlloc ()
void pageFree (void *)
void pagePreAlloc (int numpages)
 Preallocate numpages large pages for each thread.
void pageIn (void *buf, size_t len)
 Forces the given block to be paged into physical memory.
int numPageAllocTotal ()
 Returns total large pages allocated by Galois memory management subsystem.
int numPageAllocForThread (unsigned tid)
 Returns total large pages allocated for thread by Galois memory management subsystem.
int numNumaAllocForNode (unsigned nodeid)
 Returns total small pages allocated by OS on a NUMA node.
int numNumaNodes ()
 Returns number of NUMA nodes on machine.
void * largeInterleavedAlloc (size_t bytes, bool full=true)
 Allocates memory interleaved across NUMA nodes.
void largeInterleavedFree (void *mem, size_t bytes)
 Frees memory allocated by largeInterleavedAlloc().
void * largeAlloc (size_t bytes, bool preFault=true)
 Allocates a large block of memory.
void largeFree (void *mem, size_t bytes)
 Frees memory allocated by largeAlloc().
void printInterleavedStats (int minPages=16 *1024)
 Print lines from /proc/pid/numa_maps that contain at least n small pages.

Variables

const size_t smallPageSize = 4*1024
const size_t pageSize = 2*1024*1024

Detailed Description

Memory management functionality.


Function Documentation

void * Galois::Runtime::MM::largeAlloc ( size_t  bytes,
bool  preFault = true 
)

Allocates a large block of memory.

void Galois::Runtime::MM::largeFree ( void *  mem,
size_t  bytes 
)

Frees memory allocated by largeAlloc().

void * Galois::Runtime::MM::largeInterleavedAlloc ( size_t  bytes,
bool  full = true 
)

Allocates memory interleaved across NUMA nodes.

If full, allocate across all NUMA nodes; otherwise, allocate across NUMA nodes corresponding to active threads.

void Galois::Runtime::MM::largeInterleavedFree ( void *  mem,
size_t  bytes 
)

Frees memory allocated by largeInterleavedAlloc().

int Galois::Runtime::MM::numNumaAllocForNode ( unsigned  nodeid  ) 

Returns total small pages allocated by OS on a NUMA node.

int Galois::Runtime::MM::numNumaNodes (  ) 

Returns number of NUMA nodes on machine.

int Galois::Runtime::MM::numPageAllocForThread ( unsigned  tid  ) 

Returns total large pages allocated for thread by Galois memory management subsystem.

int Galois::Runtime::MM::numPageAllocTotal (  ) 

Returns total large pages allocated by Galois memory management subsystem.

void * Galois::Runtime::MM::pageAlloc (  ) 
void Galois::Runtime::MM::pageFree ( void *  m  ) 
void Galois::Runtime::MM::pageIn ( void *  buf,
size_t  len 
)

Forces the given block to be paged into physical memory.

void Galois::Runtime::MM::pagePreAlloc ( int  numpages  ) 

Preallocate numpages large pages for each thread.

void Galois::Runtime::MM::printInterleavedStats ( int  minPages = 16*1024  ) 

Print lines from /proc/pid/numa_maps that contain at least n small pages.


Variable Documentation

const size_t Galois::Runtime::MM::pageSize = 2*1024*1024
const size_t Galois::Runtime::MM::smallPageSize = 4*1024

Generated on 2 Nov 2013 for Galois by  doxygen 1.6.1