Prefetching Vs The Memory System : Optimizations for Multi-core Server Platforms