Patterns for High Performance Multiscale Computing - Alowayyed, S.; Piontek, T.; Suter, J.L.; Hoenen, O.; Groen, D.; Luk, O.; Bosak, B.; Kopta, P.; Kurowski, K.; Perks, O.; Brabazon, K.; Jancauskas, V.; et al. (Future generation computer systems, 2019)
We describe our Multiscale Computing Patterns software for High Performance Multiscale Computing. Following a short review of Multiscale Computing Patterns, this paper introduces the Multiscale Computing Patterns Software, which consists of description, optimisation and execution components. First, the description component translates the task graph, representing a multiscale simulation, to a particular type of multiscale computing pattern. Second, the optimisation component selects and applies algorithms to find the most suitable mapping between submodels and available HPC resources. Third, the execution component which a middleware layer maps submodels to the number and type of physical resources based on the suggestions emanating from the optimisation part together with infrastructure-specific metrics such as queueing time and resource availability. The main purpose of the Multiscale Computing Patterns software is to leverage the Multiscale Computing Patterns to simplify and automate the execution of complex multiscale simulations on high performance computers, and to provide both application-specific and pattern-specific performance optimisation. We test the performance and the resource usage for three multiscale models, which are expressed in terms of two Multiscale Computing Patterns. In doing so, we demonstrate how the software automates resource selection and load balancing, and delivers performance benefits from both the end-user and the HPC system level perspectives. •We introduce the idea of the Multiscale Computing Patterns (MCP).•We present the MCP software for High Performance Multiscale Computing.•To simplify and automate the execution of complex multiscale simulations on HPC.•Also to provide both application-specific and pattern-specific performance optimisation.•We test the performance and the resource usage for three multiscale models (two MCPs).•We demonstrate how the software automates resource selection and load balancing.