Execution strategies for memory-bound applications on NUMA systems