Performance Interfaces

Performance interfaces are to performance what semantic interfaces (documentation, header files, specifications, etc.) are to functionality: succinct descriptions of the performance one can expect when running that code. Performance interfaces differ from performance specifications and/or models in that they are succinct and highly accessible to the average developer, in the same way that a semantic interface differs from a formal specification.

Our research pursues three broad directions:

  • Extracting performance interfaces from system implementations, and using them to develop applications that meet their performance expectations
  • Designing systems that exhibit predictable performance and are thus amenable to being described using a performance interface
  • Formally verifying that systems code will indeed perform as advertised by its performance interface

Publications

Software

  • LPN is a toolchain that let hardware developers to specify a performance-only model of their hardware accelerators with a representation called Latency Petri Net (LPN). The toolchain includes different tools that transform the LPN into different representations for different usages (performance interfaces, verification conditions, fast simulators and formats for visualization).
  • PIX is a toolchain that automatically extracts performance interfaces from software network function (NF) implementations. The resulting performance interfaces are accurate yet orders of magnitude simpler than the code itself, and they take mere minutes to extract.
  • Concord is a runtime that demonstrates how to achieve predictable, microsecond-scale control of execution time with low throughput overhead.
  • Bolt is a precursor to PIX, and it is used to automatically generate performance contracts for software network functions.

This is a joint project with the Dependable Systems Lab at EPFL.