Curto, Bryant J2023-01-092023-01-092023-01-092023-01-03http://hdl.handle.net/10012/19037With the slowing or even death of Moore’s Law, computer system architectures are trending toward more CPU cores. This trend has driven systems researchers to explore novel ways of utilizing this computational power for improved efficiency and performance. One such approach is to use this power to help alleviate the memory wall problem through execution delegation. The memory wall problem describes the issue whereby system performance hits a wall that is dictated by the latency of accessing main memory. Using execution delegation, the execution of the application on one core is delegated to another core. The desired result is that the cores of the system are specialized to access mostly disjoint sets of data. In this way, data locality and, therefore, performance are improved. The aim of this work is to develop tools and methods for predicting situations in which execution delegation via user thread migration is useful for improving an application’s data locality. To this end, a microbenchmarking tool named Accesstest is used to perform a systematic study of execution delegation via user thread migration. Further, an approach, which makes use of a working set characterization tool named Accessprof, is developed to predict the qualitative impact of delegating an execution sequence. This prediction approach is verified and used to improve the Apache HTTP server’s performance by as much as 11%.endelegationuser-level threadingdata localitymigrationspatial localityImproving Data Locality in Applications through Execution DelegationMaster Thesis