Zur Hauptnavigation wechseln Zur Suche wechseln Zum Hauptinhalt wechseln

Control Flow Duplication for Columnar Arrays in a Dynamic Compiler

  • Sebastian Kloibhofer (Vortragende*r)

Aktivität: Vortrag oder PräsentationVortrag nach Bewerbung und AuswahlScience-to-science

Beschreibung

In this paper, we describe novel compiler optimizations in the GraalVM Compiler that optimize queries on columnar arrays. At JIT compile time, we identify loops that access potentially columnar arrays and duplicate them in order to specifically optimize accesses to columnar arrays. Additionally, we describe a new approach for creating columnar arrays from arrays consisting of complex objects by performing multi-level storage transformation. We demonstrate our approach via an implementation for JavaScript Date objects. Our work shows that automatic transformation of arrays to columnar storage is feasible even for small workloads and that more complex arrays of objects could benefit from a multi-level transformation. Furthermore, we show how we can optimize methods that handle arrays in different states by the use of duplication. We evaluated our work on microbenchmarks and established data analytics workloads (TPC-H) to demonstrate that it significantly outperforms previous efforts, with speedups of up to 10x for particular queries. Queries additionally benefit from multi-level transformation, reaching speedups of around 2x. Additionally, we show that we do not cause significant overhead on workloads not suitable for storage transformation. We argue that automatically created columnar arrays could aid developers in data-centric applications as an alternative approach to using dedicated APIs on manually created columnar arrays. Via automatic detection and optimization of queries on potentially columnar arrays, we can improve performance of data processing and further enable its use in common—particularly dynamic—programming languages.
Zeitraum16 März 2023
Ereignistitel<Programming> 2023
VeranstaltungstypKonferenz
OrtJapanAuf Karte anzeigen

Wissenschaftszweige

  • 102029 Praktische Informatik
  • 102009 Computersimulation
  • 102 Informatik
  • 102011 Formale Sprachen
  • 102022 Softwareentwicklung
  • 102013 Human-Computer Interaction
  • 102024 Usability Research

JKU-Schwerpunkte

  • Digital Transformation