This Paper describes and evaluates a system of dynamic memory migraton for codes executing in a Non-Uniform Memory Access
environment. This system of migration applies information about the load-imbalance within a workload in order to determine
the affinity between threads of the application and regions of memory. This information then serves as the basis of migration
decisions, with the object of minimising the NUMA distance between code and the memory it accesses. Results are presented
which demonstrate the effectiveness of this technique in reducing the runtime of a set of representative HPC kernels.