  Proxy applications (proxy-apps) are basic tools for evaluating the
performance of specific workloads on high-performance computing (HPC)
systems.Since the development of high-fidelity proxy-apps, which exhibit
similar performance characteristics as corresponding production applications,
is labor-intensive, synthetic proxy-apps are created as a useful supplement to
manually developed proxy-apps. To thoroughly resemble performance
characteristics of HPC applications represented by Message Passing Interface
(MPI) programs, we propose Siesta, a novel framework to automatically
synthesize proxy-apps based on communication-computation traces. Given an MPI
program, Siesta synthesizes parameterized code snippets to mimic computation
behaviors in different execution periods, and combines the code snippets and
MPI function records into an event trace. It then extracts program behavior
patterns from the trace as grammars, and finally transforms the grammars into a
synthetic proxy-app. We evaluate the proposed methods on representative MPI
programs with various environments. The results show that our synthetic
proxy-apps can precisely approximate the performance characteristics of MPI
programs.
