Locality Transformations and Prediction Techniques for Optimizing Multicore Memory Performance