Table of Contents
Fetching ...

Iridescent: A Framework Enabling Online System Implementation Specialization

Vaastav Anand, Deepak Garg, Antoine Kaufmann

TL;DR

The paper tackles the challenge of manually designing high-performance, workload-specific system implementations by proposing Iridescent, a framework that automates online specialization guided by end-to-end performance. It introduces a two-part architecture that separates stable fixed code from a performance-critical handler, and provides a rich set of specialization points and policy-driven, Just-In-Time code generation to explore configurations at runtime. Through multiple case studies (MMulBlockBench, CloverLeaf, LibLPM, TAS, FastClick, Network Functions), Iridescent demonstrates substantial performance gains (up to 30x in some cases) and adaptation to dynamic workloads, while carefully addressing correctness via specialization guards. The work contributes a practical toolkit for annotating specialization opportunities, managing runtime exploration, and integrating with LLVM, enabling dynamic, end-to-end optimization with manageable developer effort.

Abstract

Specializing systems to specifics of the workload they serve and platform they are running on often significantly improves performance. However, specializing systems is difficult in practice because of compounding challenges: i) complexity for the developers to determine and implement optimal specialization; ii) inherent loss of generality of the resulting implementation, and iii) difficulty in identifying and implementing a single optimal specialized configuration for the messy reality of modern systems. To address this, we introduce Iridescent, a framework for automated online system specialization guided by observed overall system performance. Iridescent lets developers specify a space of possible specialization choices, and then at runtime generates and runs different specialization choices through JIT compilation as the system runs. By using overall system performance metrics to guide this search, developers can use Iridescent to find optimal system specializations for the hardware and workload conditions at a given time. We demonstrate feasibility, effectivity, and ease of use.

Iridescent: A Framework Enabling Online System Implementation Specialization

TL;DR

The paper tackles the challenge of manually designing high-performance, workload-specific system implementations by proposing Iridescent, a framework that automates online specialization guided by end-to-end performance. It introduces a two-part architecture that separates stable fixed code from a performance-critical handler, and provides a rich set of specialization points and policy-driven, Just-In-Time code generation to explore configurations at runtime. Through multiple case studies (MMulBlockBench, CloverLeaf, LibLPM, TAS, FastClick, Network Functions), Iridescent demonstrates substantial performance gains (up to 30x in some cases) and adaptation to dynamic workloads, while carefully addressing correctness via specialization guards. The work contributes a practical toolkit for annotating specialization opportunities, managing runtime exploration, and integrating with LLVM, enabling dynamic, end-to-end optimization with manageable developer effort.

Abstract

Specializing systems to specifics of the workload they serve and platform they are running on often significantly improves performance. However, specializing systems is difficult in practice because of compounding challenges: i) complexity for the developers to determine and implement optimal specialization; ii) inherent loss of generality of the resulting implementation, and iii) difficulty in identifying and implementing a single optimal specialized configuration for the messy reality of modern systems. To address this, we introduce Iridescent, a framework for automated online system specialization guided by observed overall system performance. Iridescent lets developers specify a space of possible specialization choices, and then at runtime generates and runs different specialization choices through JIT compilation as the system runs. By using overall system performance metrics to guide this search, developers can use Iridescent to find optimal system specializations for the hardware and workload conditions at a given time. We demonstrate feasibility, effectivity, and ease of use.

Paper Structure

This paper contains 75 sections, 11 figures, 6 tables.

Figures (11)

  • Figure 1: Architecture of a Iridescent-specialized system.
  • Figure 2: MMulBlockBench microbenchmark
  • Figure 3: Average cycles required to perform a table lookup with varying table sizes under two different workloads.
  • Figure 4: FastPath router throughput with Iridescent specialized LinearIPLookup element for different routing table sizes at 100% fast-path hit rate.
  • Figure 5: FastPath router throughput with Iridescent specialized LinearIPLookup element for varying fast-path hit rates.
  • ...and 6 more figures