Font Size: a A A

Safe automatic data splitting for linked data structures

Posted on:2008-03-31Degree:M.ScType:Thesis
University:University of Alberta (Canada)Candidate:Curial, Stephen MatthewFull Text:PDF
GTID:2448390005465831Subject:Computer Science
Abstract/Summary:
Data transformations, such as pool allocation, have shown promise as a method of reducing the number of cache misses for dynamically allocated data in non-numeric applications. To further improve data locality this thesis proposes a data reorganization technique that extends pool allocation by incorporating maximal structure splitting.;MPADS is evaluated on the SPEC 2000, Olden and LLU benchmark suites. The pointer analysis used in MPADS proves to be too conservative for the complex SPEC benchmarks and many opportunities are abandoned, but identifies opportunities in the Olden and LLU benchmarks. MPADS outperformed pool allocation for every benchmark tested and for one benchmark, MPADS increased performance by over a factor of 2 from the baseline.;We develop a safe, fully automatic technique known as Memory-Pooling-Assisted Data Splitting (MPADS) that can improve spatial locality for pointer-based data structures allocated in the heap. To change the storage location of dynamically allocated data, a memory allocation library is created and the address calculation of the data accesses are updated. MPADS is implemented in the IBM XL production compiler suite.
Keywords/Search Tags:Data splitting, Data structures, Pool allocation, Dynamically allocated data, Olden and LLU
Related items