Preserving locality in parallel applications

Contemporary computer hardware contains high speed memory components such as cache memory, translation look aside buffer and other processor structures such as prefetchers, branch predictors that hide speed gap between main memory and processor. Usage of these resources occur transparent to operating system and is controlled in hardware. Current operating systems and applications ignore the problem optimal allocation of hardware-controlled memory resources. The problem of allocation of hardware controlled resources is closely tied to the problem software design. In this talk, I ll speak about program behavior model called the working set model that is one of the corner stones of computer science, evolution of computer hardware architecture, implications of hardware evolution on software design and methods of optimal usage of hardware controlled resources in current and future hardware. Computer hardware has undergone considerable changes in the past five decades and the direction of growth of hardware summons for new perspective on software design. My conclusions are supported by a microbenchmark and a real-world application study the results of which will be presented in the talk.