dyNUMA – Dynamic thread allocation tool on NUMA systems

Increasing number of threads to maximize system performance is not necessary the best strategy. Oversubscribing number of threads in the system could a harm the performance due to contention of hardware resources, such as memory, disk IO and network. To address this issue, we proposed dyNUMA. It is a dynamic thread control runtime on NUMA systems.  The concept of dyNUMA is simple: it dynamically predicts the number of threads based on the system performance proving via performance counters. In each periodic  prediction, dyNUMA runtime predicts not only number of threads, but also the best thread mapping on the NUMA systems.  To predict number of threads, we use an neural network to learn how many threads need to use at the runtime. Further, dyNUMA will use a heuristic approach to reduce memory contention of threads on NUMA systems based on local and remove memory accesses distribution.

Paper : 

Tool download :