Application Programming Interface for NumaAllocators.jl
NumaAllocators.NumaAllocators
— ModuleNumaAllocators
Extends ArrayAllocators
to allocate memory on specific NUMA nodes.
Examples
using NumaAllocators
Array{UInt8}(numa(0), 100)
Array{UInt8}(NumaAllocator(1), 100)
Main Interface
NumaAllocators.numa
— Functionnuma(node)
Create a NumaAllocator
on NUMA node node
. Short hand for NumaAllocator
constructor.
Example
julia> using NumaAllocators
julia> Array{UInt8}(numa(0), 32, 32);
NumaAllocators.NumaAllocator
— TypeNumaAllocator(node)
Cross-platform NUMA allocator
Example
julia> using NumaAllocators
julia> Array{UInt8}(NumaAllocator(0), 32, 32);
NumaAllocators.current_numa_node
— Functioncurrent_numa_node()::Int
Returns the current NUMA node as an Int
NumaAllocators.highest_numa_node
— Functionhighest_numa_node()::Int
Returns the highest NUMA node as an Int
Platform Specific Interface
Windows
NumaAllocators.Windows
— ModuleNumaAllocators.Windows
NUMA support for Windows.
See also https://docs.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualallocexnuma
NumaAllocators.Windows.WinNumaAllocator
— TypeWinNumaAllocator
Allocate memory on a specific NUMA node with VirtualAllocExNuma
.
See also https://docs.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualallocexnuma
Linux
NumaAllocators.LibNUMA
— ModuleNumaAllocators.LibNUMA
NUMA Support for Linux
See https://github.com/numactl/numactl
NumaAllocators.LibNUMA.LibNumaAllocator
— TypeLibNumaAllocator{B}
Allocate memory via numa_alloc_onnode
.
See https://linux.die.net/man/3/numa