Previous | Next --- Slide 38 of 64
Back to Lecture Thumbnails
gogogo

What are these massive dips in the graph caused by?

carnegieigenrac

They represent points where the entirety of a working set is able to be held in the cache.

A working set is a set of data that is repeatedly being accessed, usually in some type of loop. If a program is mostly accessing data from the same working set, there will be massive reduction in traffic once the entirety of the working set can be held in the cache. This is because the program can access all the data it needs without having to load/store things in from main memory.

tclarke

I'm a bit confused on inherent communication and cold misses here. Since it's the data that must "fundamentally be moved...given the specified assignment", it seems like it's a function of the algorithm. Therefore wouldn't it also be a function of the capacity of the cache level? As in, was the constant level shown here just a choice to show that data traffic can't go below a certain level? Because I could see that after a certain point in the hierarchy, you might not even need to access that level of the cache for your particular algorithm.

bob_sacamano

@carnegieigenrac You mean to say that the main benefits of working sets arise due to temporal locality in the code?

amolakn

@bob_sacamano I believe it's spatial locality he's referring to. It's just like cachelab from 213. If you access members of a working set from memory, nearby elements will also be stored in the cache. As you access more members of the working set the spatial locality will increase, and I'm assuming those large dips in the graph are referring to when a large chunk of the dataset itself is in the cache.