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, wherein the first set of monitored usage information comprises at least, for each thread of the one or more threads, instructions completed per cycle when prefetch is enabled, instructions completed per cycle when prefetch is disabled, memory bandwidth consumption when prefetch is enabled, and memory bandwidth consumption when prefetch is disabled; 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.