Using Performance Attributes for Managing Heterogeneous Memory in HPC Applications
Abstract:
The complexity of memory systems has increased considerably over the past decade. Supercomputers may now include several levels of heterogeneous and non-uniform memory, with significantly different properties in terms of performance, capacity, persistence, etc. Developers of scientific applications face a huge challenge: efficiently exploit the memory system to improve performance, but keep productivity high by using portable solutions. In this work, we present a new API and a method to manage the complexity of modern memory systems. Our portable and abstracted API is designed to identify memory kinds and describe hardware characteristics using metrics, for example bandwidth, latency and capacity. It allows runtime systems, parallel libraries, and scientific applications to select the appropriate memory by expressing their needs for each allocation without having to re-modify the code for each platform. Furthermore we present a survey of existing ways to determine sensitivity of application buffers using static code analysis, profiling and benchmarking. We show in a use case that combining these approaches with our API indeed enables a portable and productive method to match application requirements and hardware memory characteristics.
Año de publicación:
Keywords:
- Benchmarking
- Code analysis
- Profiling
- Heterogeneous memory
- NUMA
- heterogeneous memory
- benchmarking
- code analysis
- multi-level memory
- performance attributes
- profiling
Fuente:



Tipo de documento:
Conference Object
Estado:
Acceso restringido
Áreas de conocimiento:
- Arquitectura de computadoras
Áreas temáticas de Dewey:
- Ciencias de la computación
- Programación informática, programas, datos, seguridad
- Métodos informáticos especiales