Towards Enabling Low-Level Memory Optimisations at the High-Level with Ownership Annotations

Juliana Franco, Tobias Wrigstad, Sophia Drossopoulou · KTH Publication Database DiVA (KTH Royal Institute of Technology) · 2016

In modern architectures, due to the huge gap between CPU performance and memory bandwidth, an application’s performance highly depends on the speed at which the system is able to deliver data to operate on. The placement of data in memory affects the number of cache misses, and thus the overall speed of the application. To address this, pooling and splitting are two techniques that allow to group or split data in memory, according to whether they are usually accessed together or separately. However, theseare either low-level optimisations, or outside the control of the programmer. We propose OHMM, an object-oriented programming language that uses ownership-like annotations to express high-level constraintson how objects should be placed in memory. These annotations will allow the runtime to allocate objects using pooling andsplitting, and thus lead to efficient data accesses. In this short paper, we explain OHMM through an example, show how the objects will be laid out, and informally argue the benefits in terms of cache performance.

Read the paper · More papers on PaperTik