Optimizing Layout of Recursive Datatypes with Marmoset

التفاصيل البيبلوغرافية
العنوان: Optimizing Layout of Recursive Datatypes with Marmoset
المؤلفون: Singhal, Vidush, Koparkar, Chaitanya, Zullo, Joseph, Pelenitsyn, Artem, Vollmer, Michael, Rainey, Mike, Newton, Ryan, Kulkarni, Milind
المصدر: European Conference on Object Oriented Programming 2024
سنة النشر: 2024
المجموعة: Computer Science
مصطلحات موضوعية: Computer Science - Programming Languages, Computer Science - Performance
الوصف: 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.
نوع الوثيقة: Working Paper
URL الوصول: http://arxiv.org/abs/2405.17590
رقم الأكسشن: edsarx.2405.17590
قاعدة البيانات: arXiv