Towards Enabling Low-Level Memory Optimisations at the High-Level with Ownership Annotations
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, these are either low-level optimisations, or outside the control of the programmer.
We propose OHMM, an object-oriented programming language that uses a variation of ownership types to express high-level constraints on how objects should be placed in memory. These annotations will allow the runtime to al- locate objects using pooling and splitting, 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.
Mon 18 Jul
|13:50 - 14:20|
Mark MillerGoogle Inc.
|14:20 - 14:50|
Juliana FrancoImperial College London, Tobias WrigstadUppsala University, Sophia DrossopoulouImperial College LondonPre-print
|14:50 - 15:20|