When is a program limited by the memory bandwidth?
- by hanno
I want to know if a program that I am using and which requires a lot of memory is limited by the memory bandwidth.
When do you expect this to happen? Did it ever happen to you in a real life scenario?
I found several articles discussing this issue, including
http://www.cs.virginia.edu/~mccalpin/papers/bandwidth/node12.html
http://www.cs.virginia.edu/~mccalpin/papers/bandwidth/node13.html
http://ispass.org/ucas5/session2_3_ibm.pdf
The first link is a bit old, but suggests that you need to perform less than about 1-40 floating point operations per floating point variable in order to see this effect (correct me if I'm wrong).
How can I measure the memory bandwidth that a given program is using and how do I measure the (peak) bandwidth that my system can offer?
I don't want to discuss any complicated cache issues here. I'm only interested in the communication between the CPU and the memory.