Proxy-apps, or mini-apps, are simple self-contained benchmark codes with performance-relevant kernels extracted from real applications. Initially used to facilitate software-hardware co-design, they are a crucial ingredient for serious performance engineering, especially when dealing with large-scale production codes. MD-Bench is a new proxy-app in the area of classical short-range molecular dynamics. In contrast to existing proxy-apps in MD (e.g. miniMD and coMD) it does not resemble a single application code, but implements state-of-the art algorithms from multiple applications (currently LAMMPS and GROMACS). The MD-Bench source code is understandable, extensible and suited for teaching, benchmarking and researching MD algorithms. Primary design goals are transparency and simplicity, a developer is able to tinker with the source code down to the assembly level. This paper introduces MD-Bench, explains its design and structure, covers implemented optimization variants, and illustrates its usage on three examples.
翻译:MD-Bench是传统短程分子动态领域的一个新的代理应用程序。与MD(如微型MD和共同MD)中现有的代理应用程序(如微型MD和共同MD)不同,它不象一个单一的应用代码,而是执行多种应用(目前LAMMPS和GROMACS)的最新艺术算法。MD-Bench源代码是可以理解的、可扩展的,适合教学、基准和MDM算法的研究。初级设计目标是透明和简单,开发者能够用源代码向组装层下移。本文介绍MD-Bench,解释其设计和结构,涵盖已实施的优化变式,并用三个例子说明其使用情况。