Chris Travers provides an overview of NUMA:
This entry in the series focuses on the low-level hows and whys of Non-Uniform Memory Access so that it is possible to understand the solutions and recommendations later with a focus on conceptual details. Unfortunately in many details this requires focusing on technical details as often the concepts without the details are confusing at best.
Read on for a quick history of NUMA and what options are available in the Linux kernel.