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.
翻译:代理应用(proxy-apps)是评估高性能计算(HPC)系统上特定工作负载性能的基本工具。由于开发高保真度的代理应用以展现同相应生产应用相似的性能特征需要耗费大量精力,因此创建合成代理应用作为手动开发的代理应用的有用补充应运而生。为了充分模拟使用消息传递接口(MPI)程序表示的HPC应用程序的性能特征,我们提出了Siesta,这是一种基于通信-计算跟踪自动合成代理应用的新框架。在给定MPI程序的情况下,Siesta合成参数化的代码片段,以模仿不同执行期间的计算行为,并将代码片段和MPI函数记录组合成事件跟踪。然后从跟踪中提取程序行为模式作为语法,最终将语法转换为合成代理应用。我们在具有各种环境的代表性MPI程序上评估了所提出的方法。结果表明,我们的合成代理应用可以精确地近似MPI程序的性能特征。