A survey of software techniques to emulate heterogeneous memory systems in high-performance computing


Abstract:

Heterogeneous memory will be involved in several upcoming platforms on the way to exascale. Combining technologies such as HBM, DRAM and/or NVDIMM allows to tackle the needs of different applications in terms of bandwidth, latency or capacity. And new memory interconnects such as CXL bring easy ways to attach these technologies to the processors. High-performance computing developers must prepare their runtimes and applications for these architectures, even before they are actually available. Hence, we survey software solutions for emulating them. First, we list many ways to modify the performance of platforms so that developers may test their code under different memory performance profiles. This is required to identify kernels and data buffers that are sensitive to memory performance. Then, we present several techniques for exposing fake heterogeneous memory information to the software stack. This is useful for adapting runtimes and applications to heterogeneous memory so that different kinds of memory are detected at runtime and so that buffers are allocated in the appropriate one.

Año de publicación:

Keywords:

  • Emulation
  • Runtime
  • Cache
  • Virtual machine
  • ACPI
  • Heterogeneous memory
  • NUMA
  • Pirate
  • Throttling

Fuente:

scopusscopus
googlegoogle
orcidorcid

Tipo de documento:

Review

Estado:

Acceso abierto

Áreas de conocimiento:

  • Ingeniería de software

Áreas temáticas de Dewey:

  • Programación informática, programas, datos, seguridad
  • Ciencias de la computación
  • Métodos informáticos especiales