1. A method for sharing memory bandwidth in one or more processors, the method comprising: receiving a first set of monitored usage information for one or more processors executing one or more threads; calculating impact of hardware data prefetching for each thread of the one or more threads, based on the first set of monitored usage information; and adjusting prefetch settings for the one or more threads, based on calculated impact of hardware data prefetching for each thread of the one or more threads.