Programming with Context-Sensitive Holes using Dependency-Aware Tuning

09/02/2022
by   Linnea Stjerna, et al.
0

Developing efficient and maintainable software systems is both hard and time consuming. In particular, non-functional performance requirements involve many design and implementation decisions that can be difficult to take early during system development. Choices – such as selection of data structures or where and how to parallelize code – typically require extensive manual tuning that is both time consuming and error-prone. Although various auto-tuning approaches exist, they are either specialized for certain domains or require extensive code rewriting to work for different contexts in the code. In this paper, we introduce a new methodology for writing programs with holes, that is, decision variables explicitly stated in the program code that enable developers to postpone decisions during development. We introduce and evaluate two novel ideas: (i) context-sensitive holes that are expanded by the compiler into sets of decision variables for automatic tuning, and (ii) dependency-aware tuning, where static analysis reduces the search space by finding the set of decision variables that can be tuned independently of each other. We evaluate the two new concepts in a system called Miking, where we show how the general methodology can be used for automatic algorithm selection, data structure decisions, and parallelization choices.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
01/24/2023

A Qualitative Study on the Implementation Design Decisions of Developers

Decision-making is a key software engineering skill. Developers constant...
research
04/06/2023

Hardware-Aware Static Optimization of Hyperdimensional Computations

Binary spatter code (BSC)-based hyperdimensional computing (HDC) is a hi...
research
01/14/2022

Transfer-Tuning: Reusing Auto-Schedules for Efficient Tensor Program Code Generation

Auto-scheduling for tensor programs is a process where a search algorith...
research
05/16/2023

Auto-Tuning High-Performance Programs Using Model Checking in Promela

The paper combines research approaches that traditionally have been disj...
research
09/30/2020

Persistent Data Retention Models

Non-Volatile Memory devices may soon be a part of main memory, and progr...

Please sign up or login with your details

Forgot password? Click here to reset