Singhal, Vidush, Koparkar, Chaitanya, Zullo, Joseph, Pelenitsyn, Artem, Vollmer, Michael, Rainey, Mike, Newton, Ryan R., Kulkarni, Milind (2024) Optimizing Layout of Recursive Datatypes with Marmoset. In: 38th European Conference on Object-Oriented Programming (ECOOP 2024). . Schloss Dagstuhl - Leibniz-Zentrum f\"r Informatik (In press) (The full text of this publication is not currently available from this repository. You may be able to access a copy if URLs are provided) (KAR id:106460)
The full text of this publication is not currently available from this repository. You may be able to access a copy if URLs are provided. (Contact us about this Publication) |
Abstract
While programmers know that the low-level memory representation of data structures can have significant effects on performance, compiler support to optimize the layout of those structures is an under-explored field. Prior work has optimized the layout of individual, non-recursive structures without considering how collections of those objects in linked or recursive data structures are laid out. This work introduces Marmoset, a compiler that optimizes the layouts of algebraic datatypes, with a special focus on producing highly optimized, packed data layouts where recursive structures can be traversed with minimal pointer chasing. Marmoset performs an analysis of how a recursive ADT is used across functions to choose a global layout that promotes simple, strided access for that ADT in memory. It does so by building and solving a constraint system to minimize an abstract cost model, yielding a predicted efficient layout for the ADT. Marmoset then builds on top of Gibbon, a prior compiler for packed, mostly-serial representations, to synthesize optimized ADTs. We show experimentally that Marmoset is able to choose optimal layouts across a series of microbenchmarks and case studies, outperforming both Gibbons baseline approach, as well as MLton, a Standard ML compiler that uses traditional pointer-heavy representations.
Item Type: | Conference or workshop item (Paper) |
---|---|
Projects: | 17715 |
Subjects: | Q Science > QA Mathematics (inc Computing science) > QA 76 Software, computer programming, |
Divisions: | Divisions > Division of Computing, Engineering and Mathematical Sciences > School of Computing |
Funders: | Engineering and Physical Sciences Research Council (https://ror.org/0439y7842) |
Depositing User: | Michael Vollmer |
Date Deposited: | 01 Jul 2024 10:16 UTC |
Last Modified: | 02 Jul 2024 14:44 UTC |
Resource URI: | https://kar.kent.ac.uk/id/eprint/106460 (The current URI for this page, for reference purposes) |
- Export to:
- RefWorks
- EPrints3 XML
- BibTeX
- CSV
- Depositors only (login required):