Proxy applications (proxy-apps) are fundamental 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. Existing proxy-app synthesis methods for HPC applications mainly focus on either communications patterns or computation kernels. 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 proxies 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 using context-free grammars, and finally transforms the grammars into executable code as a synthetic proxy-app of the given MPI program. We evaluate the proposed methods on representative MPI programs with different parallel scales. The results show that our synthetic proxy-apps can precisely approximate the performance characteristics of MPI programs.
翻译:代理应用程序(代理应用程序)是评价高性能计算系统(HPC)具体工作量绩效的基本工具。由于开发具有与相应的生产应用程序类似性能特征的高不端代理应用程序,是劳动密集型的合成代理应用程序,是人工开发代理应用程序的有益补充。 HPC应用程序的现有代理应用程序合成方法主要侧重于通信模式或计算内核。为了与通过信息传输接口(MPI)程序所代表的HPC应用程序的性能特征完全相似,我们提议建立一个新型框架,即基于通信转换轨迹的自动合成代理应用程序。考虑到MPI程序,Sesta合成参数化代码模型以模拟不同执行期间的计算行为,并将代码片断和MPI功能记录合并成事件跟踪。然后,它用不上下文的语法提取程序行为模式,最后将语法代码转换成可执行代码,作为特定MPI程序的合成代理应用程序。我们评估了不同合成性能特征的MAMI程序,我们用不同的合成模型评估了不同的合成模型。