Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm writing a paper on the topic of applications affected more by memory performance than processor performance. I've got a lot written regarding the gap between the two, however I can't seem to find anything about the applications that might be affected more by memory performance than by processor speed.

I suppose these are applications that make a large amount of memory references, but I have no idea what kind of applications would make such large number of references to make it stand out? Perhaps databases?

Can you please give me any pointers on how to proceed, some links to papers? I'm really stuck.

share|improve this question

closed as too broad by Jim G., ratchet freak, GlenH7, MichaelT, gnat Oct 20 '13 at 6:50

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

yeah databases especially when they have some decent caching, also image and video processing software – ratchet freak Oct 20 '13 at 0:06
@ratchetfreak: Image and video processing? Unless they're offloading their work on to the GPU, I'd expect those to be very CPU intensive. – Jim G. Oct 20 '13 at 0:25
depends on how large the cache lines are, and in the GPU case the amount of dedicated on chip memory – ratchet freak Oct 20 '13 at 0:54
up vote 0 down vote accepted

Applications that keep either many objects or deep object graphs in their cache may be candidates for your paper.

Speculation about Google's search engine architecture might make for a good paper. Here's why:

  1. Google's search engine crawler may store its results in a massively distributed data store, but when you make a search engine query, your HTTP request does not ultimately query a database (it would be too slow).
  2. Instead, your HTTP request ultimately queries some sort of distributed in-memory cache. There shouldn't be too much to calculate, and therefore not too much for the CPU to do. Querying the cache is the important part, and therefore, performance is heavily based on the way the cache is indexed and, indeed, memory performance.

Note:I'm sure that Google might provision state of the art machines with state of the art CPUs to crawl the web, but they are clustered so they don't have to be. The web crawler algorithm is certainly of a distributed nature, such that adding more machines to to the cluster would improve web crawler performance.

Furthermore, crawling the web could conceivably be a CPU-intensive task, but querying for search results should not be.

share|improve this answer
google would be more likely to buy the cheapest to get in bulk rather than state of the art – ratchet freak Oct 20 '13 at 0:09
@ratchetfreak: You might be right. Please see my edit. – Jim G. Oct 20 '13 at 0:21

Matrix transpose, matrix multiplication, convolution are all examples that come to mind. Many scientific computing problems are numerically quite simple (matrix multiplication is pretty trivial, it's just a few adds and multiplies), but computing a single entry of a matrix requires accessing an entire row of the first operand an entire column of the second operand. The result is that, no matter how the matrix is stored in memory, it is difficult to implement in such a way to keep the relevant parts in cache (or even in memory in some cases).

A considerable amount of research has gone into developing cache-efficient versions of these operations, and the fastest implementations usually require system-dependent cache optimizations. See BLAS and FFTW (

share|improve this answer
What applications might use such calculations? – robotron Oct 20 '13 at 8:28
Numerical differential equations, cryptography, dynamics, statistical analysis, climatology. – Jeremy West Oct 20 '13 at 19:23

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