Synthetic benchmarks that are built after real workloads can be used as proxies of real applications to assess the performance of a machine. Compared to real applications, the advantage of synthetic benchmarks is twofold: (i) the execution time is limited, and (ii) they hide functional details of the application, making reverse-engineering harder. However, hand-coded synthetic benchmarks need a lot of work to develop and maintain.
In this abstract, we present a first step towards an automatic benchmark generation method. The goal is to automatically create a synthetic benchmark that has similar performance characteristics as the real application on different machines, while hiding functional details.
Synthetic benchmarks have various promising applications, such as reduced simulation times for design space exploration and simulator validation purposes, and the exchange of proprietary applications as synthetic benchmarks among companies and between industry and academia.