I would like to know more on choosing hardware to get the maximum price/performance when using the PETSc library (and various third-party preconditionners)

I am currently working on a 2 cpu (2*E5-2640) workstation with a total of 24 logical cores. But my system is bounded by RAM banwidth such that I don't get any speed-up with more than six cores (even on a large problem). I get such results both on my apps and with the included benchmark.

Since some of my colleagues are in the process of buying hardware in the order or 100 cores, I would like to know how hardware should be chosen in order to get better memory bandiwidth.


1 Answer 1


If you're using iterative methods with assembled matrices, just buy DDR channels. Don't pay attention to number of cores when loooking at the spec sheet. Within the same class of processors (e.g., a recent generation of Xeon), the achievable memory bandwidth will be proportional to the quoted peak bandwidth. Note that for very small problem sizes, you might be able to fit within cache and thus see significantly better performance.

  • 1
    $\begingroup$ In other words, if you care about price/performance ratio, buy the cheapest and slowest processors you can get, plus DDR memory. The fastest processors in the same generation may be 20 or 30% faster, but they will also be 2-3 times more expensive. $\endgroup$ Commented Apr 14, 2015 at 16:17
  • 2
    $\begingroup$ @WolfgangBangerth, what Jed means is what he said. Make sure you are buying chips that have all the possible memory channels enabled. Some client/desktop parts from Intel have less memory channels than their sever-class brethren. Then you need to fill up all of the DIMM slots connected to those channels with dual-rank DIMMs. There are some subtleties in this, but this will get you into the right neighborhood. $\endgroup$
    – Bill Barth
    Commented Apr 14, 2015 at 18:57
  • $\begingroup$ I am indeed working with iterative methods with assembled matrices. A good performance metric to choose hardware in my case would be: "Max Memory Bandwidth"(on ark.intel.com) * Total number or processors $\endgroup$
    – RYegavian
    Commented Apr 17, 2015 at 8:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.