Towards Automated Memory Model Generation Via Event Tracing

OFJ Perks and DA Beckingsale and SD Hammond and I Miller and JA Herdman and A Vadgama and AH Bhalerao and L He and SA Jarvis, COMPUTER JOURNAL, 56, 156-174 (2013).

DOI: 10.1093/comjnl/bxs051

The importance of memory performance and capacity is a growing concern for high performance computing laboratories around the world. It has long been recognized that improvements in processor speed exceed the rate of improvement in dynamic random access memory speed and, as a result, memory access times can be the limiting factor in high performance scientific codes. The use of multi-core processors exacerbates this problem with the rapid growth in the number of cores not being matched by similar improvements in memory capacity, increasing the likelihood of memory contention. In this paper, we present , a lightweight memory tracing tool and analysis framework for parallel codes, which is able to identify peak memory usage and also analyse per- function memory use over time. An evaluation of , in terms of its effectiveness and also its overheads, is performed using nine established scientific applications/benchmark codes representing a variety of programming languages and scientific domains. We also show how can be used to automatically generate a parameterized memory model for one of these applications, a two-dimensional non-linear magnetohydrodynamics application, . Through the memory model we are able to identify an unexpected growth term which becomes dominant at scale. With a refined model we are able to predict memory consumption with under 7% error.

Return to Publications page