Previous | Next --- Slide 42 of 43
Back to Lecture Thumbnails
kayvonf

Question: An interesting comment might summarize the intuition behind these strategies.

boba

Adding and removing arithmetic while loading the same data will indicate whether the limiting factor is arithmetic instructions or memory bandwidth/latency. If execution time scales linearly with adding arithmetic, data accesses do not significantly contribute to execution time. If removing arithmetic results in similar execution times, the majority of execution time must be spent on data accesses.

Changing array accesses to A[0] guarantees optimal caching so this will show how much improving spatial or temporal locality can speedup the program.

Removing all atomic operations or locks eliminates all syncing so it shows how much execution time goes towards synchronization.

paramecinm

Because we are only interested in the result of our algorithm, any other overheads (like memory visiting, synchronization, etc) are introduced by program implementation. So remove these overheads, we can get the upper-bound speed and each parts time consumption.