Previous | Next --- Slide 46 of 47
Back to Lecture Thumbnails
kayvonf

Question: This slide mentions that as the core count increases, the computation is increasingly bandwidth bound. Can you explain why this is the case?

Cake

I'm guessing that if only 1 core is running the program , the high arithmetic intensity of the compression/decompression algorithm is likely to cause the rate of memory access to be relatively low (therefore the program is compute-bound instead of bandwidth-bound). However, if multiple cores are running the same program, each core will have to access memory , causing bandwidth requirements to rise.

Penguin

Adding cores increases the rate at which arithmetic operations can be performed. However the cores are still requesting data from the same memory system that can only keep up with so many requests. As more cores are added, the computation speed begins to surpass the rate at which memory can be accessed. By compressing the graph, we can supply more information with less memory and therefore keep up with the increased memory demands of the system, but we pay the cost of having to use computation power to extract the compressed graph information.

vadtani

to add to the point made by @Penguin, since the bandwidth can't keep up after throwing in more cores it makes sense to burn compute and waste the extra resources which we have (by decompressing the graph) in order to be as efficient as possible to overcome the limiting factor that is bandwidth bound.

vasua

Even though the graphs show that this is the case, it seems somewhat counterintuitive that compressing and uncompressing data constantly while processing it can actually improve performance (due to bandwidth constraints). I suppose this is just another example of the reality challenging beliefs, and the importance of profiling and understanding the system characteristics.