Previous | Next --- Slide 9 of 60
Back to Lecture Thumbnails
qwerty

The characteristics of real-world applications are not uniform. You could have components of which make use of large amounts of thread-level parallelism and SIMD parallelism, whereas other parts could be inherently sequential. The key to the success of modern processors is that they have very good memory locality and good predictability of the access patterns. Locality means that most of the time you’re gonna find the data that you’re looking for in the cache. I'm not 100% clear on what predictable access patterns means.

pranil

Here's what I think is an interesting way to look at this. When we do parallelize any program, we don't the performance of any one thread cannot be any higher than before. We get a speedup because there are several of these threads running. We improve throughput without improving single-threaded performance. This is why we would prefer to have several (possibly smaller) cores for parallel programs. However, for a program which cannot be parallelized at all, we would prefer to have a single highly performant core for the best results. I think this ties in well with why we might need different kinds of resources ('heterogeneous') for different kinds of programs.

noelma

"The most efficient processor is a heterogeneous mixture of resources" so it follows that programs and applications must also exploit a variety of parallel tools to reach maximum efficiency?

gsamp

Predictable access patterns: Data accesses follow a pattern (so you can pre-fetch things, which should lead to future cache hits).

Please log in to leave a comment.