is there a way to programmatically disable the hardware prefetcher on an AMD system like you can in an Intel system as discussed in this topic
Specifically for the AMD Opteron Barcelona or Istanbul architecture.
All AMD Family 10h processors (including Barcelona and Istanbul) have two different hardware prefetchers.
The first is the traditional data cache prefetcher that recognizes contiguous streams of either ascending or descending cache line accesses. It can be disabled by setting bit 13 of MSRC001_1022 to "1".
The other hardware prefetcher is the "memory controller prefetcher". This is a somewhat more general prefetcher, but only operates within the memory controller (i.e., it does not send the prefetched data to a core -- it just enables the memory controller to return it more quickly when the core requests it).
The stuff above is documented in the BIOS and Kernel Developer's Guide for Family 10h processors: http://support.amd.com/us/Processor_TechDocs/31116.pdf