NUMA Awareness
src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/linux/resources/numa/NumaResourceAllocator.java
cpp
private NumaResourceAllocation allocate(ContainerId containerId,
Resource resource) {
for (int index = 0; index < numaNodesList.size(); index++) {
NumaNodeResource numaNode = numaNodesList
.get((currentAssignNode + index) % numaNodesList.size());
if (numaNode.isResourcesAvailable(resource)) {
numaNode.assignResources(resource, containerId);
LOG.info("Assigning NUMA node " + numaNode.getNodeId() + " for memory, "
+ numaNode.getNodeId() + " for cpus for the " + containerId);
currentAssignNode = (currentAssignNode + index + 1)
% numaNodesList.size();
return new NumaResourceAllocation(numaNode.getNodeId(),
resource.getMemorySize(), numaNode.getNodeId(),
resource.getVirtualCores());
}
}